私はdebianサーバーのcrontabの行をコメントアウトしました。これはデフォルトで存在していたと思いますが、1時間ごとにエラーメールが届きました。
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
ただし、エラーメールは、コメントアウトされていないかのように受信され続けます。エラーメール:
Subject: Cron <root@(none)> root cd / && run-parts --report /etc/cron.hourly (failed)
/bin/sh: root: not found
何か案は?
「crontab」と言うときは、具体的ではありません。あなたはあなたが意味するものを言うべきです。ただし、内容からすると/etc/crontab
のようになります。そのファイルにはユーザーフィールドがあるため、そのエラーが発生することは意味がありません。私の賭けは、その行を含むユーザーcrontabがあるということです。ユーザーのcrontabにはユーザーフィールドは含まれていません。
適切なことは、/etc/crontab
のその行を変更しないことです。それが実行する他のジョブがあるかもしれません。
そのファイルと/etc/cron.*
サブディレクトリ内のファイルは任意のエディタを使用して編集できます。 EDITOR
環境変数を設定することにより、crontab -e
を使用するときに使用するエディターを指定できます。
ユーザーのcronタブ(rootを含む)を編集するには、crontab -e
を使用する必要があります。ユーザーフィールドを削除するか、表示されるser crontabのその行を削除します(/etc/crontab
ではありません)。ユーザーcrontabにはユーザーフィールドがありませんが、システムcrontabにはあります。
ユーザーのcrontabは/var/spool/cron/crontabs
にあります。その行をSudo grep
して、どのファイルに迷線があるかを調べることができます。繰り返しますが、ユーザーのcrontabを編集するには、crontab -u username -e
のみを使用してください。
システムのマンページでcrontab(5)を確認してください(man 5 crontab
)、特に「EXAMPLE SYSTEMCRONFILE」セクションの下。/etc/crontabファイルのみにユーザー名フィールドが含まれます。システム以外のユーザーのcrontabには、このフィールドは含まれていません。/etc/crontabを編集する場合は、crontab(1)コマンドではなく、テキストエディタを使用してください。