2013年02月19日

/etc/cron*

/etc/の中身を見ていて思った

/etc/cron*って何なのだろうかと

/etc/の中に

$ls /etc/cron*
crontab cron.d/ cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/


なんかいっぱい入ってる。

主な用途


cronというのは前から知っていて

日時や時間をコマンドと一緒に登録しておいて

指定時間になったらそのコマンドを実行するというやつのはず。

atコマンドというのもあって、こっちは現在から○○分後とかそういうこともできる。


中身


$ls /etc/cron*
cron.d/    //時間が来たら動作させるプログラムが入っているディレクトリ
cron.daily/  //毎日ある時間に...
cron.hourly/  //毎時間ある分に...
cron.monthly/ //毎月ある週ある日ある時間に...
cron.weekly/  //毎週ある日有る時間に...
crontab    //上の各ディレクトリ内のプログラムを動作させるcronの設定ファイル


cron.*はディレクトリで単にshプログラムが入ってるだけ。

crontabはcronの設定ファイルが入っていて

各月にcron.montyly内のプログラムを

各週にcron.weekly内のプログラムを

各日に...

と書かれているだけ。

上記の各フォルダに入れるものはシステムに関わる重要なものっぽい。

自作したものを動かしたいときは別のディレクトリに入れておくべきっぽい。

cronの設定ファイルの書き方


最低限の登録方法をここにメモ。

細かい設定方法は以下の参考を。

参考
http://www.server-memo.net/tips/crontab.html (server-memo.net)

行う動作は、~/date.txtというファイルに毎日18:45に「Im hungry」と書き込むもの。

まず以下を実行。

$crontab -e


そうすると自動的にエディタが開かれる。

エディタが開かれたら最終行に以下を追加。

45 18 * * * /bin/echo "Im hungry" >> /home/username/date.txt


左から5つ数字を並べる。分、時、日、週、月。

実行するプログラムを記述。

echoコマンドは絶対パスで/bin/echoと直接叩く。


echo_hungry.shというecho "Im hungry"が書かれたshファイルを作成して

45 18 * * * /home/username/echo_hungry.sh


としてもよいのかな。

これが最低限の書き方のはず。

crontab -eの恐怖


crontab -r


このコマンドはcrontabの設定ファイルを全て削除するものらしい。

eとrがキーボード上で隣にあるから誤って全削除なんていう悲劇報告がネット上に...

なので.bashrcにエイリアスを登録しておいたほうがいいかも

alias crontab='crontab -i'


雑感


rsyncを使った定期バックアップとかそういうことをするのに使うくらいしか思いつかない。

一度設定したら滅多に使うことはないかもしれないけど一応覚えておく。





この記事へのコメント

name:

mail:

HP:

comment:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。