web-dev-qa-db-ja.com

crontabの更新を無視するcron

私は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

何か案は?

5
GJ.

「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)コマンドではなく、テキストエディタを使用してください。

2
Arcege