cronで定期的にフォルダを作成してみる(Ubuntu 16.04)
色々とcronについて勉強したので、今回はcronで一分毎にTestという名のフォルダを作成するまでやってみようと思います。
cronとは
設定したファイルを定期的に実行させるためのツール
crontabに登録されているcronを確認
crontab -e
編集等はvimで行うことになります。
もし、まだcronがひとつも登録されていなければ、no crontab for <ユーザー名> が表示されます。
crontabは /etc の中にあるのですが、私はvimの使い方がわからなかったので、sublimetext(テキストエディタ)に移してから編集していましたが、これではうまくいきませんでした。(編集しても内容が反映されない)
おそらく、編集・実行の権限が与えられていなかったからだと思います。
諦めてvimの使い方をドットインストールで学んできて、ようやく編集することができました。
(vimは癖が強すぎるが、慣れれば最高に使いやすいツールになることの片鱗をつかめた!)
そもそもcronが動作しているのかをチェック
sudo service cron status
active(running)が表示されていれば正常に動作しています。
また、cronの動作ログもこれで確認可能です。
基本的にcronの動作ログは /var/log のsyslogファイルに書かれています。
なので。
cd /var/log cat syslog
で、確認可能ですが、いちいちsyslogを見に行くのも面倒なので、sudo service cron status で確認したほうが楽です。
定期的に実行させるファイルを作成
/home にtest.shというファイルを作成します。
#!/bin/shはシェルスクリプトであるということを明示するためのものです。
mkdir Test にしているので、cronが上手く実行されれば/home にTestという名のフォルダが作成されるはずです。
(mkdirでもなくても大丈夫です、今回はcronが動作しているかどうかを確認したいため、適当にmkdirにしました)
#!/bin/sh mkdir Test
crontabからcronを設定
crontab -e
* * * * * /bin/sh /home/ubuntu/test.sh > /dev/null 2>&1
時間は1毎分に設定しています。
エラーが発生していた場合、すぐに確認できるので。
また、cronによって実行するファイルがシェルスクリプトであることを明示するために /bin/sh を記述しています。
cronでの時間設定の書式は以下のサイトがわかりやすかったです。
これでcronの設定は終わったので、ログを見てみます。
3月 30 23:09:01 tk CRON[4148]: (ubuntu) CMD (/bin/sh /home/test.sh)
CMDとはcronが実行したコードを示しています。
ログを見る限り、cronは正常に実行されています。
ディレクトリを見てみると...
これが...
テンプレート ピクチャ test.sh デスクトップ ミュージック ドキュメント 公開 ダウンロード ビデオ
1分後...
Testフォルダが作成されたので、無事にcronが動作したようです。
Test ダウンロード ビデオ テンプレート ピクチャ test.sh デスクトップ ミュージック ドキュメント 公開
MTAというエラーが出た場合
cronはエラーが出た際、メールで通知しようとするのですが、メールの設定を行っていない場合にMTAというエラーが出ます。
postfixなどでメールの設定を行うことでこのエラーは解決できます。
以下のサイトがわかりやすかったです。