Linux での crontab スケジュール実行コマンドの詳細な説明

Linux での crontab スケジュール実行コマンドの詳細な説明

LINUX では、定期的なタスクは通常、cron デーモン プロセス [ps -ef | grep cron] によって処理されます。 Cron は、コマンド ラインとそれが呼び出される時刻を含む 1 つ以上の構成ファイルを読み取ります。

cron 設定ファイルは「crontab」と呼ばれ、「cron table」の略です。

1. Cronサービス

Cron は、人間の介入なしにジョブを実行できる、Linux 上のスケジュール実行ツールです。
service crond start //サービスを開始する
service crond stop // サービスをシャットダウンする
service crond restart //サービスを再起動する
service crond reload //設定を再読み込み
service crond status //サービスステータスを確認する

2. Cron は次の 3 つの場所で設定ファイルを探します。

1. /var/spool/cron/ このディレクトリには、root を含む各ユーザーの crontab タスクが保存されます。各タスクは作成者の名前が付けられます。たとえば、tom によって作成された crontab タスクは、ファイル /var/spool/cron/tom に対応します。通常、ユーザーは最大 1 つの crontab ファイルを持ちます。

3. /etc/crontab このファイルは、システム管理者が設定したシステムメンテナンスやその他のタスク用の crontab を配置する役割を担います。

シェル=/bin/bash
 PATH=/sbin:/bin:/usr/sbin:/usr/bin
 MAILTO=ルート
 ホーム=/

# 詳細については 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
 # | | | | |
 # * * * * * ユーザー名 実行するコマンド

•MAILTO=root: これは、/etc/crontab ファイル内のルーチン コマンドでエラーが発生した場合に、エラー メッセージまたは画面に表示されるメッセージが誰に送信されるかを意味します。 root はクライアント側でメールを受信できないため、システムの状態を常に把握できるように、通常はこのメールを自分のアカウントに変更します。
•01 * * * * root run-parts /etc/cron.hourly: #run-parts 行の後のコマンドでは、5 つの数字の後に root が続いていることがわかります。この行は、「実行レベルは root アイデンティティです」という意味です。もちろん、この行を他のアイデンティティに変更することもできます。また、run-parts は、次の /etc/cron.hourly が「ディレクトリ (/etc/cron.hourly) 内のすべての実行可能ファイル」であることを意味します。つまり、毎時 01 分に、システムは /etc/cron.hourly ディレクトリ内のすべての実行可能ファイルを root として実行します。次の3行は似た意味を持ちます。 /etc/ にアクセスして確認してみてください。これらの 4 つのディレクトリはすでにシステムにプリセットされています。毎日実行する必要があるコマンドを /etc/cron.daily に直接書き込むことができ、crontab -e プログラムを使用する必要はありません。

4. /etc/cron.d/ このディレクトリは、実行される crontab ファイルまたはスクリプトを保存するために使用されます。

5. 権限 (?)

Crontabの権限の問題 /var/adm/cron/ に移動し、cron.allow と cron.deny ファイルが存在するかどうかを確認します。
使用方法は次のとおりです。

1. 両方のファイルが存在しない場合は、root ユーザーのみが crontab コマンドを使用できます。
2. cron.allow は存在するが cron.deny は存在しない場合、cron.allow ファイルにリストされているユーザーのみが crontab コマンドを使用できます。root ユーザーがそこに含まれていない場合、root ユーザーは crontab を使用できません。
3. cron.allow が存在せず、cron.deny が存在する場合、cron.deny ファイルにリストされているユーザーのみが crontab コマンドを使用できず、他のユーザーは使用できます。
4. 両方のファイルが存在する場合、cron.allow ファイルにリストされているが cron.deny にはリストされていないユーザーは crontab を使用できます。両方のファイルに同じユーザーが存在する場合、cron.allow ファイルのユーザーが優先されます。ユーザーが cron.allow に存在する場合、crontab コマンドを使用できます。

AIXでは、通常のユーザーにはデフォルトでcrontab権限があります。ユーザーによるcrontabの使用を制限したい場合は、/var/adm/cron/cron.denyを編集する必要があります。
HP-UNIXでは、通常のユーザーにはデフォルトでcrontab権限がありません。通常のユーザーにcrontab権限を与えるには、編集します。

6. cronスクリプトを作成する

ステップ 1: cron スクリプト ファイルを作成し、crontest.cron という名前を付けます。
15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt は、印刷コマンドが 15 分ごとに 1 回実行されることを意味します。ステップ 2: スケジュールされたタスクを追加します。コマンド「crontab crontest.cron」を実行します。 3番目のステップを完了します: 「crontab -l」を実行して、スケジュールされたタスクが成功したかどうか、または対応するcronスクリプトが/var/spool/cronに生成されたかどうかを確認します。

注: この操作は、新しいcrontabを追加するのではなく、ユーザーのcrontabを直接置き換えます。

7. Crontab の使用

crontab コマンドは、cron デーモンを駆動するために使用されるテーブルをインストール、削除、または一覧表示するために使用されます。ユーザーは、実行するコマンド シーケンスを crontab ファイルに記述して、コマンドを実行します。
各ユーザーは独自の crontab ファイルを持つことができます。 /var/spool/cron 内の crontab ファイルを直接作成または変更することはできません。 crontabファイルはcrontabコマンドによって作成される。

crontab ファイルに実行するコマンドと時刻を入力する方法。このファイルの各行には 6 つのフィールドが含まれており、最初の 5 つのフィールドはコマンドが実行される時間を指定し、最後のフィールドは実行されるコマンドです。
各フィールドはスペースまたはタブで区切られます。形式は次のとおりです。
分 時間 日 月 曜日 コマンド
有効な値: 00-59 00-23 01-31 01-12 0-6 (0 は日曜日)
数字に加えて、いくつかの特殊記号があります。つまり、「*」、「/」、「-」、「」です。「*」は値の範囲内のすべての数字を表し、「/」はすべてを意味し、「/5」は5単位ごとを意味し、「-」は特定の数字から特定の数字までを表し、「、」は複数の個別の数字を区切ります。

-l 現在のcrontabを標準出力に表示します。
-r 現在のcrontabファイルを削除します。
-e VISUAL または EDITOR 環境変数で指定されたエディターを使用して、現在の crontab ファイルを編集します。編集を終了して終了すると、編集したファイルが自動的にインストールされます。

8. 例:

毎朝6時

0 6 * * * echo "おはようございます。" >> /tmp/test.txt //注意: echo だけでは、cron がすべての出力を root のメールボックスに電子メールで送信するため、画面に出力が表示されません。

2時間ごと

0 */2 * * * echo "ちょっと休憩しましょう。" >> /tmp/test.txt

午後11時から午前8時まで2時間ごとと午前8時

0 23-7/2,8 * * * echo "良い夢を" >> /tmp/test.txt

毎月4日、毎週月曜~水曜の午前11時

0 11 4 * 1-3 コマンドライン

1月1日午前4時

0 4 1 1 * コマンドライン SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //エラーが発生したりデータが出力された場合、データはこのアカウントに電子メールとして送信されます HOME=/

/etc/cron.hourly のスクリプトを1時間ごとに実行する

01 * * * * ルート実行部分 /etc/cron.hourly

/etc/cron.daily のスクリプトを毎日実行する

02 4 * * * ルート実行部分 /etc/cron.daily

/etc/cron.weeklyのスクリプトを毎週実行する

22 4 * * 0 ルート実行部分 /etc/cron.weekly

/etc/cron.monthlyのスクリプトを毎月実行する

42 4 1 * * ルート実行部分 /etc/cron.monthly

注: 「run-parts」パラメータ。このパラメータを削除すると、フォルダ名の代わりに実行するスクリプトの名前を書き込むことができます。

毎日午後 4 時、5 時、6 時の 5 分、15 分、25 分、35 分、45 分、55 分にコマンドを実行します。

5、15、25、35、45、55、16、17、18 * * * コマンド

システムは毎週月曜日、水曜日、金曜日の午後 3 時にメンテナンス モードに入り、再起動します。

00 15 * * 1,3,5 シャットダウン -r +5

毎時 10 分と 40 分に、ユーザー ディレクトリで innd/bbslin コマンドを実行します。

10,40 * * * * innd/bbslink

毎時 1 分ごとにユーザー ディレクトリで bin/account コマンドを実行します。

1 * * * * ビン/アカウント

毎朝 3:20 に、ユーザー ディレクトリで次の 2 つのコマンドを実行します (各コマンドは ; で区切られます)。

20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)

毎年 1 月と 4 月の 4 日から 9 日の 3:12 と 3:55 に、コマンド /bin/rm -f expire.1st を実行し、結果を mm.txt ファイルに追加します (mm.txt ファイルはユーザー自身のディレクトリにあります)。

12,55 3 4-9 1,4 * /bin/rm -f 有効期限.1st$#@62;$#@62;mm.txt

要約する

上記は、編集者が紹介した Linux でのタスクのスケジュール実行のための crontab コマンドの詳細な説明です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Linux 環境で crontab コマンドを使用して、スケジュールされた定期的な実行タスクを設定します (PHP 実行コードを含む)
  • 特定のコマンドを実行する必要があるときにシェル スクリプトの実行をタイミングする Linux crontab のソリューション
  • Linux のスケジュールタスク Crontab コマンドの使用に関する詳細な説明と概要
  • Linux でコマンドとスクリプトを定期的に実行する (cron、crontab、anacron)
  • Linux でタスクをスケジュール実行するための at コマンドと crontab コマンドの詳細な説明
  • Linux Crontab の起動、実行、編集コマンド
  • Linux crontab コマンドの形式と詳細な例 (推奨)
  • Linux crontab コマンドの使用

<<:  Vueはユーザー名が使用可能かどうかの検証を実装します

>>:  node-media-serverを使用してシンプルなストリーミングメディアサーバーを構築する

ブログ    

推薦する

MySQLインデックスの基本構文

インデックスはソートされたデータ構造です。 where 条件での検索や order by 条件での並...

Vueは不規則なスクリーンショットを実装する

目次SVG による画像キャプチャCSS部分エフェクト画像表示ソースコードアドレスこれまで見てきたもの...

MySQL 8.0.13 zipパッケージのインストール方法について

MySQL 8.0.13 にはデフォルトでデータ フォルダがあります。このフォルダを削除する必要があ...

Tomcat での jar のロードに関する異常な問題の分析と解決

現象の説明:プロジェクトでは、Springboot を使用して Web プロジェクトを開始します。起...

Vueは複数の画像の追加、表示、削除を実装します

この記事では、Vueで複数の画像を追加、表示、削除するための具体的なコードを参考までに紹介します。具...

HTML、CSS、JSコメントの標準的な使用法の概要

必要なコメントを追加することは、責任感と道徳心のあるフロントエンド開発者が持つべき良い習慣であり、コ...

インストールされていないバージョンの MySQL を使用する手順とパスワードを忘れた場合の解決策

最初のステップは、圧縮されたパッケージを対応するディスクに解凍することです。 2 番目の手順は、cm...

JavaScript のプロトタイプとプロトタイプチェーンの詳細な説明

目次プロトタイプチェーン図プロトタイピングに必須の知識プロトタイププロパティ(プロトタイプを表示) ...

Linuxグループの基礎知識ポイントまとめ

1. Linuxグループの基本紹介Linux では、すべてのユーザーはグループに所属する必要があり、...

Linux オペレーティング システムに Apache サービスをインストールする方法

ダウンロードリンク:動作環境VMware 仮想マシンの CentOS 7.6セキュアCRT Xftp...

Vue ページに img 画像を導入する方法

HTMLを学ぶとき、画像タグ<img>は画像を導入します <img src=&qu...

MySQLはデータテーブル内の既存のテーブルを分割します

目次操作方法操作プロセス既存のテーブルにパーティション テーブルを作成し、データを新しいテーブルに移...

読めばわかるVueの8つのヒント

1. v-forでは常に:keyを使用するデータを操作する必要があるときにプログラムを一定かつ予測可...

CSSは背景画像の画面適応を実現する

ログインページなどのホームページを作成する場合、大きな背景画像を配置する必要があり、さまざまな画面の...

CSS3で作られたレインボーボタンスタイル

結果: 実装コード: html <div class="buttons"&...