crontab †crontab [-u user] { -l | -r | -e } ■オプション内容
時間情報 in hour day month week command (凡例) min 分を指定 (*) hour 時を指定 (*) day 日を指定 (*) month 月を指定 (*) week 曜日を指定。0を日曜日とし、0-7まで (*) command 実行するコマンド or スクリプトを指定 (*)という記号があるものは、ワイルド・カードを使用できます crontabでのdefault設定 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=""#これがないと実行しているユーザーにメールが飛ぶ HOME=/ #これがないとユーザーのhome directoryになる 時間の指定方法 †3時間おき †2 8-20/3 * * * root hogehoge.sh これだと、8:02、11:02、14:02、17:02、20:02に、3時間置きに実行します。 2時間置き †* */2 * * * root hoge.sh これだと2時間置きに実行する mysqldumpをcronにやらせてみる †* 3 * * * * db_user mysqldump --opt -u db_user --password='hoge' db_name > /home/user1/db_backup.sql ここでパスワードは -p じゃなくて --passwordを使わないと、受け取ってくれない ファイル名に日時をつけたい場合は、 * 3 * * * * touch /home/hoge/info_$(date '+\%Y\%m\%d-\%k\%M').txt とするとinfo_200908011215.txtというファイルが出来る。 ログ設定と場所 †cronのログは設定をしないと出してくれない、気がする
日曜日は0でも使えるらしいだけど、0と7だと7のほうがよいみたい。 MAILTO †特にcrontabで何かスクリプトを動かしていて(DBバックアップとか)、その中スクリプトがエラーだったり、スクリプトが何か値を返してきた場合(それかスクリプトがecho渡河していた場合)、crontabを動かしているユーザー宛にメールが飛びます。 例えばayaのcrontabで登録していたら、aya@そのサーバのMTAが認識している自FQDNをつけて送りつけてきます。 rootとかは大事なんだけど(エラー内容が多いので)、それ以外は意外とウザい。 なので消しちゃいます。 エラー †crontab -eを閉じようとすると "/tmp/crontab.xxxx/crontab":2: bad minute errors in crontab file, can't install. Do you want to retry the same edit? といわれる。間違えてない!場合は一行が長すぎて保存する時に改行されちゃって怒られているらしい |