2009/12/24

Ubuntu Server で cron を使う

ただそれだけのお話。
sudo とかは適時付けてね。

Ubuntu Server 8.04 LTS版を使っていて、ちょっとした処理を定期実行させたいと思った。
そういう場合はcronを使えばいいそうだ。
Ubuntu Serverは元々cronが動いているそうな。

 

すでにcronによって定期実行がスケジュールされているかの確認

# crontab –l

これで何もなければcronのジョブがないらし。あればそれが動いてるらしい。
実際に編集して、自作のスクリプトを動かすには

# crontab –e

こうするとviが起動して編集出来るようになる

# m h  dom mon dow   command
*/5 * * * * python ~/twitter/post.py > /dev/null 2>&1

1行目のコメント部分は最初から書いてある。2行目が実際に自分の書いた部分
これの意味は

5分おきに~/twitter/post.py を実行する

ただ、これだけ。
頭から「分(0~59)・時(0~23)・日(0~31)・月(1~12)・曜日(0~7:日~土の順)」と言うことのようです。なので、一定間隔で動かす以外に、毎月第二週目の火曜日にアップデートの処理を自動化したりなど使い道は十人十色。

先頭の"*/5"というので5分ごとを意味しています。一定時間毎にする場合は*/を忘れないよう注意

お尻に付いてる

> /dev/null 2>&1

は意味は分からなくても、無いとエラーで正確に実行されないらしいので付けてみた。

 

ちゃんと設定したらきちんと動いているか確認

# tail /var/log/syslog

Dec 24 08:35:01 hogehoge /USR/SBIN/CRON[11212]: (root) CMD (python ~/twitter/post.py > /dev/null 2>&1)

こんな感じに出力されていれば出来てるのではないかと思う。

 

これだけで、Pythonのスクリプトを自動実行できるようになりました。
めでたしめでたし。