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でよく使われる配列重複排除実戦ソースコード
目次1. はじめに2. タブバーのスタイルをカスタマイズする3. カスタムタブバーと関連設定を導入す...
目次前面に書かれたログインの概要ログインビジネスプロセスログインサービスの関連技術ポイントログイント...
序文Dockerを使ってHadoopクラスタを起動するたびに、ネットワークカードの再バインド、IPの...
最近、React Hooks を zarm コンポーネント ライブラリと組み合わせて使用し、js...
1. 依存パッケージをインストールする yum -y インストール gcc-c++ ncurses-...
以前、純粋な CSS を使用して波の効果を実現する方法をいくつか紹介しました。それらについては、次の...
css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...
VMware のインストールパッケージのインストールダウンロードアドレス: https://www....
<br />関連記事: Facebookの情報アーキテクチャの分析 元記事: http:...
元の住所: http://www.webdesignfromscratch.com/web-2.0-...
目次1.1 前提条件としてのJava環境1.2 Zookeeperのインストールと設定1.3 Kaf...
目次MySQLがmy.cnfを読み込む順序1. mysql.server の起動方法2. mysql...
今では、自宅のソファーに座っていても、外の喫茶店にいても、ノートパソコンの電源を入れてWi-Fiに接...
一般的な演算子と JavaScript の演算子の概要カテゴリオペレーター算術演算子+、–、*、/、...
ログインを提供し、ユーザー情報データインターフェースを取得するapi/user.js内 '@...