web-dev-qa-db-ja.com

/etc/cron.dで@rebootを使用する方法

個々のユーザーのcrontabを/etc/cron.dに移行しています。これにより、適切なバックアップ、復元、バージョン管理が可能になります。

これまでのところ、ユーザーのcrontabとその他のcrontabの唯一の違いを理解しているように、ユーザーを6番目の列として指定する必要があります。 これでよろしいですか?

そして、インターネット上のどこにも答えが見つからなかった私の主な質問:/etc/cron.dまたは/ etc/crontabで@rebootを使用する正しい方法は何ですか?

@reboot root command

18
hyperknot

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

正しいです。

21
MariusMatutiae

以下のようにインタラクティブに実行している場合は、ユーザーを指定しません。

crontab -e
@reboot /root/mycommand

/etc/cron.dにファイルとして配置する場合、たとえば/etc/cron.d/mycronfile、ユーザーを置く必要があります:

@reboot root /root/mycommand
1
Wadih M.

の場合には /etc/crontabこれらの行を追加するだけです。

@reboot        command

コマンドは、任意のスクリプトまたは単一のファイルです。

1
Krishna