# Cronの基本 ## (方法1) cron.dに「cronの設定ファイル」を追加 - ファイル名に"."を付けてはいけない。(例)yourscript.cronはだめ。 - 実行権限は644 - ユーザ権限はroot ``` /etc/cron.d/datetimecron -rw-r--r-- 1 root root 48 Oct 21 14:59 datetimecron ``` インストール ``` sudo cp alivecron /etc/cron.d/ sudo chmod 644 /etc/cron.d/alivecron sudo /etc/init.d/cron restart ``` アンインストール ``` sudo rm /etc/cron.d/alivecron sudo /etc/init.d/cron restart ``` ### (例) ``` ## cron設定ファイルを書く (この時sudoをつける必要がある) sudo vi alivecron (以下,エディタ) --------------- # 分 時 日 月 曜日 実行ユーザー コマンド # ユーザがrootの場合だと${HOME}が存在せずにエラーとなる # ディレクトリがない場合もエラーとなる * * * * * fi date > ${HOME}/alive.log # 日付時刻をHOME直下のログファイルに書き込む --------------- (エディタ終了) (別の方法) sudo echo "* * * * * fi date > ${HOME}/alive.log" > $HOME/alivecron # cron.dにコピー (この時sudoをつける必要がある) sudo cp alivecron /etc/cron.d/ # cron.dを再起動 sudo /etc/init.d/cron restart ``` ## 注意 crontab内では${HOME}以外の変数は使わない/使えない. ## (方法2) crontabを編集して設定 [非推奨] (非推奨)毎回エディタで編集することになりスケールしない ``` sudo crontab -l # 一覧表示 sudo crontab -e # 編集 > # 毎日朝5時に実行 > 分 時 日 月 曜日 コマンド > 0 5 * * * sudo rpi-clone sda -q sudo /etc/init.d/cron restart # 再起動 ``` cronのユーザ管理 実行ユーザにより登録されるcrontabは分かれる ``` crontab -e crontab -l crontab -r crontab ~/your_crontab.txt ``` ``` sudo crontab -e sudo crontab -l sudo crontab -r sudo crontab ~/your_crontab.txt ``` ## cronのログ http://make.bcde.jp/raspberry-pi/%E6%B1%BA%E3%81%BE%E3%81%A3%E3%81%9F%E6%99%82%E9%96%93%E3%81%AB%E5%87%A6%E7%90%86%E3%81%99%E3%82%8B/ rsyslog.confを編集します。 ``` $ sudo vi /etc/rsyslog.conf 以下の行をコメントアウトするだけで、/var/log/cron.logにログファイルが作成されます。 #cron.* /var/log/cron.log 次にログを記録するサービスの再起動します。 /etc/init.d/rsyslog restart 再起動が完了するとcronのログは、/var/log/cron.logにとられるようになります。 ``` スクリプトで編集 ``` sudo sh -c "echo 'cron.* /var/log/cron.log' >> /etc/rsyslog.conf" ```