私の理解では、単純なスケジュールのシステムジョブを/etc/cron.hourly/
、/etc/cron.daily/
などに、カスタムスケジュールのシステムジョブを/etc/cron.d/
に追加できるということです。
しかし、大規模なIT部門では、複数の人がサーバーを管理する場合、おそらく/etc/cron.dディレクトリがcrontabsをインストールするのに最適な場所です-これは中心点であり、それらを検索する必要がありません! (CronHowTo)
次の内容の/etc/cron.d/testing
を作成しました。
# /etc/cron.d/testing: crontab entries for report generation
Shell=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
15 13 * * 3 root /usr/bin/supervisorctl start reports
00 16 * * 4 root /usr/bin/supervisorctl start reports
ファイルには次のプロパティがあります。
user@server:/etc/cron.d$ ls -la
total 28
drwxr-xr-x 2 root root 4096 Jul 14 12:57 .
drwxr-xr-x 146 root root 12288 Jul 14 13:48 ..
-rw-r--r-- 1 root root 188 Feb 20 2014 anacron
-rw-r--r-- 1 root root 102 Feb 9 2013 .placeholder
-rwxr--r-- 1 root root 286 Jul 14 13:43 testing
木曜日の午後1時にマシンを再起動し、13:15にレポートが起動することを期待していました。 (計画はこの呼び出しをテストすることでしたが、毎週金曜日の午後4時にスケジュールすることもできました。)
しかし、何も起こりませんでした。 /var/log/syslog
にエラー(またはイベント)がないか、スーパーバイザーログ。 /etc/cron.daily/testing
で同じコマンドを使用しますが、動作します:
#!/bin/sh
/usr/bin/supervisorctl start reports
...そしてスーパーバイザージョブを独立して呼び出すことができます。だから私は問題がスーパーバイザーの仕事にあるとは思いませんし、私の呼び出しにもありません。
何が間違っていますか? (そして問題はどこに記録されていますか?)
Crontabファイル/etc/cron.d/testing
に使用される形式は正しいです。 (そうでなければならない、それは/etc/cron.d/anacron
からコピーされた)
問題は、Windowsから変更して、おそらく行末を台無しにしてしまったことです。 anacron
を再クローンし、Ubuntuで編集しましたが、すべてうまくいきました。
(エラーメッセージがある場合は、どこに記録されたかはまだわかりません。)