Crontab は定期的な実行を設定するために使用されるコマンドです。そのデーモン プロセスは crond です。crontab には 2 つの設定モードがあり、1 つはユーザー レベルの crontab、もう 1 つはシステム レベルの crontab です。ここではこれらを個別に説明します。 ユーザーレベルのcrontab ユーザーが新しい周期ジョブ スケジュールを作成する場合、使用される crontab コマンド (crontab -e) はすべてのユーザーが使用できます。通常のユーザーは、スケジュールされたタスクを自分自身に対してのみ設定できます。その後、/var/spool/cron/usenameに自動的に書き込みます。 ユーザーコントロールファイル /etc/cron.allow : /etc/cron.deny : 注文 crontab [-u ユーザ名] [-l|-e|-r] パラメータ: -u: このタスクは、他のユーザーが crontab 作業スケジュールを作成/削除できるように、root だけが実行できます。 -e: vi を呼び出して crontab の作業内容を編集します。 -l: crontab の作業内容を一覧表示します。 -r: すべての crontab 作業内容を削除します。 文法 # .---------------- 分 (0 - 59) # | .------------- 時間 (0 - 23) # | | .---------- 日付 (1 - 31) # | | | .------- 月 (1 - 12) または jan、feb、mar、apr ... # | | | | .---- 曜日 (0 - 6) (日曜日 = 0 または 7) または sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * 注文 構文はシステム レベルの crontab と非常に似ていますが、違いは、システム レベルの crontab (/etc/crontab) では実行ユーザーを指定する必要があるのに対し、ここでは実行ユーザーを指定する必要がないことです。 以下にいくつか例を挙げます。 */10 * * * * /home/test.sh #現在のユーザーとして10分ごとに/home/test.shスクリプトを実行します 0 2 * * * /home/test.sh #毎日2時 0 5,17 * * * /home/test.sh #毎日5時と17時 0 17 * * sun /home/test.sh #毎週日曜日の17時 0 4,17 * * sun,mon /home/test.sh #毎週月曜日と日曜日 @reboot /home/test.sh #システムが再起動したとき 推奨されるオンラインツールは次のとおりです: cron式をオンラインで生成する システム全体のcrontab システムレベルの crontab は、通常、システムの日常的なタスクに使用されます。この方法は、他のユーザーのスケジュールされたタスクを設定するのに便利で直接的であり、シェルの実行などを指定することもできます。設定ファイルは /etc/crontab であり、root ユーザーのみが編集できます。 /etc/crontabを編集する デフォルトの内容は次のとおりです。 SHELL=/bin/bash これは、使用するシェル インターフェイスを指定します PATH=/sbin:/bin:/usr/sbin:/usr/bin これは、ファイル検索パスを指定します MAILTO=root 追加の STDOUT があり、そのデータに電子メールが送信される場合は、システム ユーザーまたは電子メール アドレス ([email protected] など) を指定できます。 # 詳細については man 4 crontabs を参照してください # ジョブ定義の例: # .---------------- 分 (0 - 59) # | .------------- 時間 (0 - 23) # | | .---------- 日付 (1 - 31) # | | | .------- 月 (1 - 12) または jan、feb、mar、apr ... # | | | | .---- 曜日 (0 - 6) (日曜日 = 0 または 7) または sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * ユーザー名コマンド 今すぐ: 毎日、毎月、毎週の期間でユーザータスクコマンドを実行します。 たとえば、/home/test.sh スクリプトを 10 分ごとに root として実行するスケジュールされたタスクを追加する場合は、次のように追加します。 */10 * * * * ルート /home/test.sh 実行者ルートを省略しないでください (実行者はユーザー レベルの crontab で指定する必要はありません)。省略すると、/var/log/cron ログにエラー「ERROR (getpwnam() failed)」が表示され、スケジュールされたタスクは正しく実行されません。 サービスを再起動する 一般的に言えば、Linux の crontab は /etc/crontab 内のルーチン タスクを 1 分ごとに自動的に再読み込みします。ただし、何らかの理由または他の Unix システムでは、crontab はメモリに読み込まれるため、/etc/crontab を変更した後、すぐに実行されない場合があります。この場合は、crontab サービスを再起動する必要があります。 ここでは CentOS を例に挙げます。 service crond start //サービスを開始します service crond stop //サービスを終了します service crond restart //サービスを再起動 service crond reload //設定を再読み込み service crond status //サービスのステータス CentOS 7の場合: systemctl restart crond.service // サービスを再起動systemctl start crond.service // サービスを開始systemctl stop crond.service // サービスを停止systemctl reload crond.service // 構成を再読み込みsystemctl status crond.service // サービスのステータス その他の考慮事項 不要な出力を抑制する 実行結果や実行オプションに出力データがある場合は、MAILTOで指定したアカウントにメールで送信されます。特定のスケジュールが失敗し続け、メールサービスに問題がある場合(実際、このサービスはまったくオンにしていません)、/var/spool/clientmqueue/に大量のファイルが生成されるため、crontabのコマンドの後に> /dev/null 2>&1を追加すると良いでしょう。 2>: リダイレクト エラー。 ログを確認する ログは/var/log/cronに保存されます 文法上の違い
参考文献 バードブラザーズの Linux プライベートキッチン 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: sysbenchツールによるMySQLデータベースのパフォーマンステストの実装方法
>>: JavaScriptでよく使われる配列重複排除実戦ソースコード
目次概要静的型チェックコードスタイルチェック(Linter)パッケージマネージャーモジュールローダー...
TW のメインテキスト ページは、以前は小さなモニターと低解像度のユーザーを考慮して幅が 850 ピ...
この記事では、Linux で PHP curl 拡張機能をインストールする方法について説明します。ご...
目次メイントピック1. UbuntuにDockerをインストールする2. DockerにROS2-F...
データボリュームの使用開始先ほどのケースでは、ホストからコンテナにデータをコピーする必要がある場合、...
この記事では、タブ切り替え機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...
目次DockerでTomcatをインストールするtomcatイメージを使用してコンテナを作成する(イ...
1. はじめにpt-query-digest は、MySQL のスロー クエリを分析するためのツール...
CSSを使用してブラウザのスクロールバーのスタイルを変更する ::-webkit-スクロールバー{ ...
1. 前提条件インポートには require.context メソッドを使用します。vite で作成...
序文開発プロセスにおいて、変数の定義は非常に頻繁かつ基本的なタスクです。変数の使用シナリオと範囲に応...
この記事では、例を使用して、MySQL ビューの原理と基本操作を説明します。ご参考までに、詳細は以下...
メタ宣言注釈の手順: 1. モバイル ページと 1 対 1 で対応するすべての PC ページを分類し...
発掘紹介: Dig は、Unix ライクなコマンドライン モードで NS レコード、A レコード、M...
1. CSS その他のアイコンアイコンを作成するには 3 つの方法があります。写真css (小さな矢...