
私は自分の Web サーバーの awstats の更新を自動化しようとしており、それを設定するには cron を使用する必要があることを理解しています。つまり、各ユーザーに crontab ファイルがあるということですか?
私は指示に従っていたここコミュニティ/AWStats
次のファイルに移動するように指示されています:/etc/crontab
そのファイルにはすでにいくつかの情報が含まれています。これはメインcrontab
ファイルか何かですか? ポップアップ表示されるファイルを使用するための手順をオンラインで見たことがありますcrontab -e
。
使用する適切なファイルと、これを行うための最良の方法は何ですか?
非ルート ユーザーとしてタスクをスケジュールすると、指定された時間間隔で問題なく自動的に実行されますか?
cron ジョブをファイルに保存した後crontab
、動作を開始する前にサーバーを再起動する必要がありますか?
答え1
使用する適切なファイルと、これを行うための最良の方法は何ですか?
crontab -e
これが最善の方法です。これにより、ユーザーごとの crontab を簡単に編集できるようになります。
非ルート ユーザーとしてタスクをスケジュールすると、指定された時間間隔で問題なく自動的に実行されますか?
はい、そのユーザー アカウントの権限で実行されます。
原則として、スケジュールされたタスクは可能な限り低い権限で実行するのが最善です。そのため、実行内容にルート権限が必要ない場合は、ルート権限を使用しないでください。あなたのアカウントのファイルとフォルダを削除したい場合は、新しいユーザーを作成してそのユーザーアカウントを使用することができます。のみそのタスクに対して。一方、あなたのタスクがするroot が必要な場合は、root の crontab を使用します ( root にsu
/ を入力してから を使用します)。sudo su
crontab -e
cron ジョブを crontab ファイルに保存した後、動作を開始する前にサーバーを再起動する必要がありますか?
いいえ、すぐに(つまり、次に予定されている時間に)動作を開始します。
ファイルを直接編集してみませんか? どこにありますか?
ユーザーの crontab ファイルは にあります/var/spool/cron/crontabs
が、その権限はスーパーユーザーの権限なしではアクセスできないように設定されています (ただし、一度開いて cron プロセスが権限をドロップすると、ファイルにアクセスできます)。
システムは、エンド ユーザーがこれらのファイルを直接編集できるようには設計されていません。実際、ファイルの先頭には、このことに関する厳しい警告があります。代わりに、このファイルは、編集用にファイルの一時的なミラーを設定する (厳しい警告なし) ことDO NOT EDIT THIS FILE
によって編集されるように設計されています。その後、永続的な crontab ファイル自体をチェックしてインストールします。これはすべて、スーパーユーザーの権限なしで実行できます。crontab -e
/tmp
crontab ファイルを直接編集した場合、結果がどうなるかはわかりません。次回の再起動まで有効にならない可能性があり、エラーが発生した場合はデバッグが困難になる可能性があります。
答え2
各ユーザーには独自の がありますcrontab
。
見るには、次のように入力してください
crontab -l
そして、はい、あなたはそれを正しく見ました、そしてを追加したいときはcrontab
単に
crontab -e
初めての場合は、 で使用するエディタについて尋ねられますcrontab
。おっしゃるとおり初心者なので、最も使いやすいエディタである nano を使用することをお勧めします。
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
はい、cron ジョブを、それを実行するのに十分な権限を持つユーザーの crontab に配置することが非常に重要です。
したがって、スクリプトを root または特別なユーザーで実行する必要がある場合は、必ずそのユーザーに su して、そこに cronjob を追加してください。
これも非常に重要です!
application/command/script
cronjob は愚かです! そう、私はそう言いました。crontabは または類似のものでは動作しないため、使用しているへの完全な PATH を常に入力してください.bashrc
。ファイルとディレクトリがどこにあるかを cron に必ず伝える必要があります。
残りの質問にお答えします:
もちろん、それは単独で実行されます。それがその目的です。ただし、cronjob が実際にそれを実行しているか、または何かが欠けているかどうかを確認する必要があります。たとえば、ログファイルにログインして、実際に動作するかどうかを確認します。
いいえ、再起動は必要ありません。Linux の再起動は通常、新しいカーネルをインストールした場合にのみ必要です。使用するには再起動する必要があります。Linux では、他のほとんどすべての操作は再起動せずに実行できます。もちろん例外もありますが、一般的にはこの記述は正しいです。