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


16

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

これまでのところ、ユーザーのcrontabとetcのcrontabの唯一の違いは、6番目の列としてユーザーを指定する必要があることです。これは正しいですか?

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

のようなもの @reboot root command

回答:


19

crontabのmanページ

/etc/cron.d/のジョブ

cron.dのジョブはシステムジョブであり、通常は複数のユーザーに使用されます。それがユーザーの名前が必要な理由です。最初の行のMAILTOはオプションです。

/etc/cron.d/jobでのジョブの例

 #login as root
 #create job with preferred editor (e.g. vim)
 MAILTO=root
 * * * * * root touch /tmp/file

これが/ etcの crontabに関するセクション全体であるため、ジョブを実行する名前のユーザーを含めることが実際に唯一の違いであると思います。

再び同じmanページから:

これらの特別な時間指定「ニックネーム」がサポートされています。これは、5つの初期時間および日付フィールドを置き換え、「@」文字が接頭辞になります。

@reboot:再起動後に1回実行します。

したがって、@ rebootを使用する適切な方法は

   @reboot user_name command

ある正しいです


1

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

@reboot        command

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


それは動作しますか? /etc/crontab通常、ユーザー名が必要です。
mwfearnley

1

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

crontab -e
@reboot /root/mycommand

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

@reboot root /root/mycommand
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.