web-dev-qa-db-ja.com

crontabファイルを編集する正しい方法は何ですか?

私は私のウェブサーバーのawstatsの更新を自動化しようとしていますが、それを設定するにはcronを使用する必要があることを理解しています。各ユーザーにはcrontabファイルがありますか?

私は指示に従っていました here community/AWStats

そして、それは次のファイルに行くように言っています:/etc/crontab

そのファイルにはすでにいくつかの情報が含まれています。これはメインのcrontabファイルですか? crontab -eでポップアップするファイルを使用するためのいくつかの指示をオンラインで見ました。

使用する適切なファイルとこれを行う最良の方法は何ですか?

非rootユーザーとしてタスクをスケジュールした場合、指定された時間間隔で問題なく自動的に実行されますか?

Cronジョブをcrontabファイルに保存した後、動作を開始する前にサーバーを再起動する必要がありますか?

50
timbram

使用する適切なファイルとこれを行う最良の方法は何ですか?

crontab -eが最善の方法です-これにより、ユーザーごとのcrontabを簡単に編集できます。

非rootユーザーとしてタスクをスケジュールした場合、指定された時間間隔で問題なく自動的に実行されますか?

はい。そのユーザーアカウントの権限で実行されます。

原則として、逃げることができる最低の特権でスケジュールされたタスクを実行することが最善です。そのため、実行している作業がrootを必要としない場合は、rootを使用しないでください。 yourアカウントのファイルとフォルダにアクセスする必要さえない場合は、新しいユーザーを作成し、そのユーザーアカウントonlyをそのタスクに使用できます。一方、タスクdoes rootが必要な場合は、rootのcrontab(su/Sudo suを使用してからcrontab -e)を使用します。

Crontabファイルにcronジョブを保存した後、動作を開始する前にサーバーを再起動する必要がありますか?

いいえ、すぐに動作を開始します(次に予定されている時間)。

47
thomasrutter

すべてのユーザーは、独自のcrontabを持っています。

表示するには、単に入力します

crontab -l

そして、あなたはcrontabを追加したいとき、あなたはそれを正しく見ました

crontab -e

crontabで使用するエディターについて初めて尋ねられます。あなたが言うように初心者であるように、私はナノを使用することをお勧めします、それは使用する最も簡単なエディタです。

Crontab自体は次のように機能します

MIN =  Minute 0-60
HOUR = Hour [24-hour clock] 0-23
MDAY = Day of Month 1-31
MON = Month 1-12 OR jan,feb,mar,apr ...
DOW =  Day of Week 0-6 OR Sun,mon,tue,wed,thu,fri,sat
COMMAND = Command to be run Any valid command-line

例えば月曜日にのみ15分ごとにジョブをトリガーするには、次のようにします

*/15 * * * mon /home/me/yourscript.sh

はい、それを実行するのに十分な権限を持つユーザーのcrontabにcronjobを配置することが非常に重要です。

そのため、スクリプトをrootまたは特別なユーザーにする必要がある場合は、そのユーザーに対してsuを実行し、そこにcronjobを追加してください。

また非常に重要です!

cronjobは愚かです!はい、私はそれを言った。使用しているapplication/command/scriptへの完全なPATHを必ず入力してください。crontabは.bashrcまたは同様のものでは機能しないためです。ファイルとディレクトリを見つけることができる場所をcronに伝えることを常に確認する必要があります。

残りの質問に答えるには:

もちろん、それはそれ自身で実行されます、それはそれがそこにあるものです。しかし、cronjobが実際にそれを実行するか、何か欠落していることを確認する必要があります。例えば。ログファイルにログインして、実際に機能するかどうかを確認します。

いいえ、再起動は必要ありません。 Linuxでの再起動は、通常、新しいカーネルをインストールする場合にのみ必要です。使用するには、再起動する必要があります。 Linuxで再起動せずに、他のほとんどすべてを実行できます。 もちろん例外もありますが、一般にこの文は正しいです。

24
s1mmel