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


12

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

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

デフォルトファイルのコメントは紛らわしいです。最初の行は言う

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

しかし、4行目は

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

2
単に/etc/cron.dの下に物を置いてみませんか?
ゾレダチェ

それは良い考えです。しかし、どのファイルを編集するかを意味するものではなく、編集者が編集ファイルを比較するか、crontabコマンドを実行しています。
Googlebot

@All唯一の違いは、crontab-eによる構文チェックです。これは、構文チェックを備えたテキストバッファです。また、通常のエディターを変更すると、crontab-eがそこにロードされます。xyntaxの重要性は、間違えた場合、すべてのファイルが無視されるためです。外部ツールを使用する場合でも、crontab-eを使用してファイルを読み取り、終了したらcrontab-eに送り返す必要があります。そうすることで、構文を心配する必要がなくなります。ユーザーとシステムのタスクからファイルを分割する方がよいので、ユーザー/テストタスクにはより良い/etc/cron.dを使用する必要があります。
m3nda

回答:


22

crontabsの下のユーザーファイルを変更すると、動作するはずです。ただし、考慮すべき2つの問題があります。

  1. ファイル内のcronエントリを誤って入力した場合、crontab -eコマンドを使用する場合とは異なり、警告は表示されません。
  2. rootとしてログインするかsudoを使用せずに、crontabの下でユーザーファイルを直接編集することはできません。許可拒否エラーが発生します。

編集

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


非常に微妙なポイント!私は常にルートとして働いているので、2番目の問題に直面したことはありませんでした。
Googlebot

4
また、デフォルトファイルの「編集しない」は、アップグレード/再インストールによってそのファイルが上書きされる可能性があるためです。
クリスS

crontabを編集するユーザーがcrontab -e提供するsantaxチェックを直接失うことについては言及しませんでした。
アダムF

1
@AdamF:これがポイント1の話です!
ハレド

8

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

crontab -e(およびエディターを必要とする他のもの)を変更して、より使い慣れたnanoエディターを使用します。

export EDITOR=nano

crontab -e

〜/ .bash_profileファイルを編集して含めることで、nanoをパーマメントのデフォルトエディターにできます。 export EDITOR=nanoして最後。

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


説明的な返信をありがとう。私はcrontabコマンドviエディターに完全に精通しています。しかし、Linuxデスクトップからサーバーに直接接続するため、(sshターミナルではなく)geditを使用します。
Googlebot

また、sshにログインするたびに書き出されるのを避けるために、bashrcファイルにexport EDITORコマンドを追加することをお勧めします。
m3nda

1
export VISUAL=vi

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

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