web-dev-qa-db-ja.com

手動でcronファイルを編集するのは悪いことですか?

通常、コマンドラインから新しいcronジョブを導入するように指示されます。しかし、(現在のcronタスクをより適切に制御することで)/var/spool/cron/crontabs/rootのようなユーザーのcronファイルを手動で(テキストエディターで)編集する方が簡単であることがわかりました。

テキストエディターでファイルを編集するのは危険ですか?

デフォルトのファイルのコメントはわかりにくいです。最初の行は言う

# DO NOT EDIT THIS FILE - edit the master and reinstall.

しかし、4行目は

# Edit this file to introduce tasks to be run by cron.
12
Googlebot

Crontabsでユーザーファイルを変更すると、正常に機能するはずです。ただし、考慮すべき2つの問題があります。

  1. ファイルにcronエントリを誤って入力した場合でも、crontab -eコマンドを使用する代わりに警告は表示されません。
  2. Rootとしてログインしたり、Sudoを使用したりせずに、crontabsで直接ユーザーファイルを編集することはできません。権限拒否エラーが発生します。

編集

追加するもう1つのポイント。ファイルを直接編集するときに、ファイルを2回開いた場合(2人のユーザーが同じファイルにアクセスしている場合)、テキストエディターによって警告が表示されることがあります。ただし、同じユーザーの2つの異なるシェルセッションからcrontab -eを使用すると、cronリストは上書きされます。これは別の違いです。

22
Khaled

私が正しく理解している場合は、crontab -eを使用したくないため、テキストエディターを使用してファイルを手動で編集しています。これは、viをエディターとして使用していて、あなたがそれに慣れていないためだと思います。

次のコマンドを実行して、より使い慣れたnanoエディターを使用するようにcrontab -e(およびエディターを必要とするその他のもの)を変更します。

export EDITOR=nano

crontab -e

〜/ .bash_profileファイルを編集して末尾にexport EDITOR=nanoを含めることにより、nanoを永続的なデフォルトエディタにすることができます。

質問に答えるためには、知らないうちに上書きされる可能性があるため、ファイルを直接編集しないでください。 4行目は、手動で編集することになっているcrontabからのものであるため、何を言っているかを示しています(1行目と言います)。

8
Jonathan Amend
export VISUAL=vi

これは、crontabのエディターを変更する正しい方法です。

1
user981836