私はunixとcronにかなり新しく、現在、既存のcronファイルにcronを追加しようとしていました。私はあなたがcrontab -e
でこれを行うことができると読んだ。私にとって混乱しているのは、crontab -e
がless /etc/crontab
とは異なるcron /コマンドを示しているということだけです-どうしてですか?編集する正しい方法/ファイルはどれですか?
@X Tianの回答にはcrontabのさまざまなファイルに関する情報が含まれていますが、質問に関する重要な情報は次のとおりです。
crontab -e
は、ユーザーのcrontabファイル(現在のDebianシステムでは/var/spool/cron/crontabs/
ディレクトリに保存されていますが、YMMVです)を編集するか、/etc/crontab
ではなく新しいファイルを作成します。 crontab -l
(crontabファイルのリスト)およびcrontab -r
(crontabファイルの削除)についても同様です。
ユーザーのアカウントで実行する必要があるすべてのcronジョブには、crontab -e
を使用する必要があります。システムジョブの場合、/etc/cron.d
の下にファイルが存在する場合は追加する必要があります。 /etc/cron.{hourly|daily|weekly|monthly}
(ただし、パッケージ名のように名前を付けることはできません!)または、/etc/crontab
に行を追加します。ただし、/etc/crontab
はシステムアップデートで上書きされる可能性があることに注意してください。
あなたは本当にマニュアルページを読みたいですman cron
およびman crontab
ここにあなたの質問をカバーする抜粋があります。 man cron
注cronは、スプール領域(/ var/spool/cron/crontabs)でcrontabファイル(/ etc/passwdのアカウントにちなんで名前が付けられている)を検索します。見つかったcrontabはメモリに読み込まれます。このディレクトリ内のcrontabには直接アクセスしないでください。それらにアクセスして更新するには、crontabコマンドを使用する必要があります。
cron also reads /etc/crontab, which is in a slightly different format (see crontab(5)). Additionally, cron reads the files in /etc/cron.d: it treats the files in /etc/cron.d as in the same way as the /etc/crontab file (they follow the special format of that file, i.e. they include the user field). However, they are independent of /etc/crontab: they do not, for example, inherit environment variable settings from it. The intended purpose of this feature is to allow packages that require finer control of their scheduling than the /etc/cron.{daily,weekly,monthly} directories to add a crontab file to /etc/cron.d. Such files should be named after the package that supplies them. Files must conform to the same naming convention as used by run- parts(8): they must consist solely of upper- and lower-case letters, digits, underscores, and hyphens. If the -l option is specified, then they must conform to the LSB namespace specification, exactly as in the --lsbsysinit option in run-parts.