過去メモを放流中。中身はちゃんと見てない。
crontabコマンド
crontabファイルの編集管理を行うコマンド。
オプション | |
---|---|
`-e` | crontabファイルの編集を行う。 |
`-l` | crontabファイルを表示する。 |
`-r` | crontabファイルを削除する。 |
`-u username` | crontabコマンドでの操作を行うユーザを切り替える |
crontab設定ファイルの書式
crontabファイルの操作は$ crontab -e
と入力して行う。
編集内容は/var/spool/cron/crontabs/
以下にユーザー名のファイルとして保管されるよう。
書式は各行に実行サイクル コマンド
の形式で記述され、実行サイクル部は、
min hour day month week command
という形で、6つのスペース区切りフィールドを用いる。
日時指定にはワイルドカード(*)が使用可能。分は0-59、時は0-23、日は1-31、月は1-12、曜日は0-6で指定するのが基本。加えて、
- 値は範囲指定(1-5)や、リスト指定(10,20,30...)が可能。
- 範囲とリストを併用(9-17,20,22)する事もできる。
-
/
キーワードで間隔指定可能。例えばhourの9-17/2
は9-17時の2時間間隔を指す。 - 月は名前で指定可能(jan-dec)
- 曜日も名前で指定可能(Sun,Mon,Tue...)
- 曜日は7=Sunとしても使用可能。
crontabを使わない方法
/etc/cron.hourly
,/etc/cron,weekly
,/etc/cron.monthly
といったディレクトリにスクリプトを置くだけで定期実行してくれる。超便利。これらの設定は、/etc/crontab
を見ると載ってる。
cronのメール設定
メールなど環境変数の設定もcrontab内で行う。メールアドレスは
MAILTO=user
で指定する(アドレスではなくユーザ名指定)。ここで値を""にしてやるとメールを送らない設定になる。
基本的にはメールは無効にして、送りたいときは明示的に、| Mail mail@adress.com
みたいなパイプつなぐほうがいいと思う。
その他の設定項目
もちろんMAILTOだけじゃなくSHELLやPATHなどの設定項目もあるが基本的な環境変数は外から引っ張ってくるみたい。