ホームページ > 記事 > システムチュートリアル > cronatab 定期タスク スケジューラ
定期的なタスクを実行し、サービスが実行されていることを確認するため。サービス名は crond です。 systemctl start crond;
プロフィール
/etc/crontab
cron ログ ファイル
cat /var/log/cron
crond は、Linux で特定のタスクを定期的に実行したり、特定のイベントの処理を待機したりするために使用されるデーモン プロセスです。これは、オペレーティング システムがインストールされると、このサービス ツールがデフォルトでインストールされ、自動的に起動されます。 crond プロセスは、実行すべきタスクがあるかどうかを 1 分ごとに定期的に確認し、実行すべきタスクがある場合は自動的に実行されます。
Linux でのタスク スケジューリングは、システム タスク スケジューリングとユーザー タスク スケジューリングの 2 つのカテゴリに分類されます。
システムタスクのスケジューリング: キャッシュされたデータのハードディスクへの書き込み、ログのクリーニングなど、システムが定期的に実行する作業。 /etc ディレクトリには、システム タスク スケジューリングの構成ファイルである crontab ファイルがあります。
設定ファイル/etc/crontabを編集して、必要な実行時間を次の図の形式で指定します。 1行が1つのタスクに対応しており、以下のような形式となります。
現在のユーザーでコマンド crontab -e を使用して、現在のユーザーとしてタスク スケジュールを作成します。システム タスク スケジュール ファイル形式とは異なり、どのユーザーとして実行するかを指定する必要はありません。
値を指定: 特定の数値を指定します
範囲値: * はすべてを意味し、この期間中にタスクを 1 回実行します。
離散値: 10 2、3、4 * * *; 10 分ごとに 2、3、4 時に実行されます。 (計3回実行)
連続範囲:10 2-10 * * *; 毎日2:10から10:10まで実行(計8回実行)
ステップ範囲: /3 * * ; 1 分あたり 3 回実行 (つまり、20 秒ごとに 1 回実行)
例:
10 10 /6 * *; 6 日ごとに 10:10 にタスクを実行します。
日付と週10 10 1-10 * 0,6 #毎月1日~10日の10:10、または土日の10:10に実行
例:
1 1 /6 * root echo "hello word " ; 6 日ごとに 1:01 にタスクを実行します。
1 1-10/3 * * * ルートエコー「hello word」は毎日 1 時から 10 時の範囲内で 3 時間ごとの最初の 1 分間に実行されます
* * * * * /bin/echo "`日付 +%F %H:%M:%S`"
#コマンドは絶対パスを記述する必要があります。変数がマークされていない限り
#ユーザーの下に新しい crontab を作成する場合、% をエスケープする必要があります
#/etc/porfile.d への書き込みはすべてのユーザーに有効になります
#現在のユーザーに ~/bash_profile を書き込みます
EDITOP=vim をエクスポート
指定したユーザーにタスクの作成を許可します
cat /etc/cron.deny #新しいタスクを作成できないようにファイルにユーザー名を書き込みますが、既に作成されたタスクは引き続き実行されます
指定されたユーザーによるタスクの作成を拒否します
cat /etc/cron.allow #デフォルトのファイルは存在しません
優先順位の許可と拒否
許可ファイルが存在する場合、拒否ファイルは有効になりません。
allow が空の場合は、すべてのユーザーを拒否します
許可も拒否も存在しない場合、ユーザーはスケジュールされたタスクを作成できません
usleepを使用して微妙なレベルの操作を実現します
usleep 1000000; 1 秒
usleep 1000; 1 ミリ秒usleep 1; 1 マイクロ秒
ループボディとスリープを使用して、第 2 レベルを達成します。毎分実行されるタスク中に 20 秒間スリープします。
以上がcronatab 定期タスク スケジューラの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。