個々のユーザーのcrontabを/etc/cron.dに移行しています。これにより、適切なバックアップ、復元、バージョン管理が可能になります。
これまでのところ、ユーザーのcrontabとその他のcrontabの唯一の違いを理解しているように、ユーザーを6番目の列として指定する必要があります。 これでよろしいですか?
そして、インターネット上のどこにも答えが見つからなかった私の主な質問:/etc/cron.dまたは/ etc/crontabで@reboot
を使用する正しい方法は何ですか?
@reboot root command
?
crontab manページ から:
/ etc/cron.d /のジョブ
Cron.dのジョブはシステムジョブであり、通常は複数のユーザーに使用されます。これが、ユーザーの名前が必要な理由です。 1行目のMAILTOはオプションです。
/etc/cron.d/jobのジョブの例
#login as root
#create job with preferred editor (e.g. vim)
MAILTO=root
* * * * * root touch /tmp/file
これが/ etcのcrontabに関するセクション全体です。そのため、ジョブが実行される名前のユーザーが含まれているのは、確かにonlyの違いです。
同じmanページから:
次の特別な時間指定「ニックネーム」がサポートされています。これは、5つの初期時刻および日付フィールドを置き換え、先頭に「@」文字を付けます。
@reboot:再起動後に一度実行します。
したがって、@ rebootを使用する適切な方法は、
@reboot user_name command
は正しいです。
以下のようにインタラクティブに実行している場合は、ユーザーを指定しません。
crontab -e
@reboot /root/mycommand
/etc/cron.dにファイルとして配置する場合、たとえば/etc/cron.d/mycronfile、ユーザーを置く必要があります:
@reboot root /root/mycommand
の場合には /etc/crontab
これらの行を追加するだけです。@reboot command
コマンドは、任意のスクリプトまたは単一のファイルです。