にわか管理者のためのLinux運用入門
サーバ/ストレージ
Linuxに限らずUNIX系のサーバでよく使う機能が「cron」だ。やりたいことをシェルスクリプトに書いておき、実行してほしいタイミングで実行されるようにcronにスケジュールを仕込んでおく。これをやりたいがためにUNIX系のサーバが欲しいというケースもあるだろう。
WSL(Windows Subsystem for Linux)のおかげで、「Windows 10 Fall Creators Update」以降はWindowsでもLinuxが実行できるのだから、ぜひこの環境でもcronを使いたい。もしここにいろいろ仕込んでおけるならば、さまざまな作業を手軽に自動化することができる。今回は、WSLでcronを使う手順について説明しよう。
WSLでcronを使う手順
まず、実行を確認するために簡単なスクリプトを作成する。
このスクリプトは「年月日_時分秒」というファイルを/home/daichi/data/というディレクトリ以下に作成するものだ。1分ごとに起動すれば1分ごとにファイルが増えていくことになる。実行権限も与えておくことを忘れないようにしてほしい。
ユーザーレベルでcronを仕込むには「crontab -e」のようにcrontabコマンドを実行すればよい。エディタが起動してくるので、ここにスケジュールを追加していく。
最初は何も書き込まれていないので、例えば次のように1分ごとに作成したシェルスクリプトを実行するようにスケジュールを設定する。
この場合、「*/1 * * * * /home/daichi/bin/monitor.sh」の設定で1分おきにスクリプトが実行されるようになる。しばらく待っていれば/home/daichi/data/の下に新しいファイルが1分おきに作成されて……いかない。cronでスケジュール通りに処理を進めるには、これを管理するcronデーモンが動作していなければならないのだが、デフォルトの状態ではこのデーモンは動作していない。そのため、「crontab -e」でスケジュールを書き込んだ後に「sudo service cron start」のようにしてcronを実行する必要がある。
この状態で初めて、cronによるスケジューリングが機能するようになる。
これでWSLでもcronが利用できるのだが、ターミナルを全て終了してしまうと起動したcronデーモンも当然終了するため、追加したスケジュールは機能しなくなる。さらに、もう一度Ubuntuのターミナルを起動してもcronデーモンは起動してこないため、やはり追加したスケジュールは機能してくれない。
MicrosoftがもともとWSLはサーバとして運用するような使い方は想定していないというように、ターミナルありきでの動作となっているため、サーバとして背後で動かし続けるというのは今のところできない。ターミナルを起動しておけばよいので、それでも構わないのであればこの使い方もありではないかと思う。
なお、上記のように「pgrep cron > /dev/null || sudo service cron start」という設定を~/.profileの最後あたりに追加しておけば,Ubuntuを起動するごとにcronも実行することになるので、少なくともターミナルが生きている間はcronを動作させることができるようになる。
WSLはサーバとして使うケースは想定されていないので、Linuxサーバと同じような使い方をするのはちょっと無理がある(ただし、不可能ではない)。しかし、使いようによってはこれでも十分いける。WSLがもたらす可能性を見逃すのはあまりにも惜しい。WSLを使いこなし、Windowsに新たなパワーを持ち込んでほしいところだ。
※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。
連載目次
もっと知りたい!こちらもオススメ

なぜ今、統合システムなのか? 押さえておくべき「3つのインパクト」
ガートナー ジャパンは10月31日~11月2日、都内で「Gartner Symposium/ITxpo 2017」を開催。11月1日には同社 主席アナリストの青山浩子氏が登壇し「CIOが理解すべき統合システムの3大インパクト」と題する講演を行った。本稿では、講演の内容をダイジェストでお届けする。
関連リンク
ダウンロードBOXに入れる
記事をダウンロードBOXに追加します。よろしいですか?
ブックマーク
記事をブックマークに追加します。よろしいですか?
会員ログイン
-
[2019/02/21 07:00] サーバ/ストレージ
-
2019年2月25日(月)
いまお客様に求められる顧客接点の最適化 コンタクトセンターで実現する事業収益の最大化 -
2019年2月26日(火)
社内のカルチャー(文化)を変えるには - ツール導入だけでは推進できない「働き方改革」 -
2019年2月28日(木) 19:00~20:00
Coke ONを通じた、コカ・コーラの消費者マーケティング -
2019年2月28日(木) 14:30~17:00
サイバーセキュリティの最新情報アップデート ~世界初!データセンター怪談をお披露目!~ -
2019年3月5日(火) 19:00~20:30
第4回 情報セキュリティ事故対応アワード
今注目のIT用語の意味を事典でチェック!