web-dev-qa-db-ja.com

/etc/cron.d/でカスタムcrontabをフォーマットするにはどうすればよいですか?

私の理解では、単純なスケジュールのシステムジョブを/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

...そしてスーパーバイザージョブを独立して呼び出すことができます。だから私は問題がスーパーバイザーの仕事にあるとは思いませんし、私の呼び出しにもありません。

何が間違っていますか? (そして問題はどこに記録されていますか?)

2
david.libremone

Crontabファイル/etc/cron.d/testingに使用される形式は正しいです。 (そうでなければならない、それは/etc/cron.d/anacronからコピーされた)

問題は、Windowsから変更して、おそらく行末を台無しにしてしまったことです。 anacronを再クローンし、Ubuntuで編集しましたが、すべてうまくいきました。

(エラーメッセージがある場合は、どこに記録されたかはまだわかりません。)

0
david.libremone