Windowsではタスクスケジューラを使うことで任意のタイミングでアプリケーションやサービスを実行することができる。この機能はUbuntuにも備わっており、よく使われる。

前回、Ubuntuの起動とシャットダウンを紹介したので、その流れで今回はUbuntuのタスクスケジューラを取り上げる。→連載「WindowsでUbuntuをはじめる」のこれまでの回はこちらを参照

Ubuntuを起動

Ubuntuを起動する。スタートメニューから「Ubuntu on Windows」を選択すればよい。

  • スタートメニューから「Ubuntu」を起動

    スタートメニューから「Ubuntu」を起動

  • Ubuntu / Windows Terminal

    Ubuntu / Windows Terminal

「Ubuntu on Windows」を選択すると、上のようなターミナルアプリケーションが起動してくる。ここでUbuntuのコマンドを実行する。

Windowsのタスクスケジューラ

Windowsでは、タスクスケジューラで日時ベースまたはタイミングやイベントベースでアプリケーションやソフトウェア、コマンド、サービスの実行などを行える。

  • Windows 11のタスクスケジューラ

    Windows 11のタスクスケジューラ

Windowsをデスクトップ用途で使っている場合、タスクスケジューラを使うことは少ないが、それでも作業の自動化を図ろうとすると使うタイミングが出てくる。一方、Windowsをサーバとして使っている場合は、タスクスケジューラを使う機会が増える。また、基幹機能として、タスクスケジューラはWindowsにとっても欠かすことのできない機能だ。

Ubuntuのcron

Ubuntuはサーバとして使われることが多い。このため、スケジューラベースでソフトウェアを実行する機能はUbuntuに欠かせない。これを実現する方法はいくつかあるが、デフォルトで用意されているcronが使われることが多い。

  • Ubuntu 20.04 / WSL

    Ubuntu 20.04 / WSL

システムレベルのスケジュールは/etc/crontabに記述するほか、/etc/cron.d/ディレクトリ以下にファイルを配置することでも機能する。

  • システムのcron設定ファイル /etc/crontab

    システムのcron設定ファイル /etc/crontab

  • ユーザはcrontabコマンドでスケジュールを書き込める

    crontabコマンドでスケジュールを書き込める

この機能はユーザーレベルでも使え、ユーザーから使う場合はcrontabというコマンドを使用する。このコマンドを使って新しくスケジュールを組んだり編集したり、現在設定されているスケジュールを確認したりといったことができる。

Ubuntu on WSLのcronを試してみる

ユーザーから「crontab -e」とコマンドを実行すると、エディタが起動してくる。まだエディタの使い方を説明していないので、ここでは処理の流れだけ追ってもらえればと思う。

エディタが起動してきたら次の1行を書き込む。

crontab -eで起動してくるエディタに記入するデータ

*/1 * * * * /mnt/c/WINDOWS/system32/notepad.exe

この設定は「1分ごとにWindowsのメモ帳を起動する」という内容になっている。

  • crontab -eで設定を編集中

    crontab -eで設定を編集中

crontab -eで編集した内容は、「crontab -l」で表示させることができる。

  • crontab -lで設定されている内容を確認

    crontab -lで設定されている内容を確認

Ubuntuをサーバとして運用しだすと、このcronにいくつもスケジュールを組むようになってくる。その場合、時々crontab -lで現在設定されているスケジュールを一覧表示して確認を行うといったことをするようになる。