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を使用してシンプルなストリーミングメディアサーバーを構築する

推薦する

DockerはRedisを起動し、パスワードを設定します

RedisはRedisバージョン5のapline(Alps)イメージを使用します。これは小さくて高速...

Vue イベントの $event パラメータ = イベント値の場合

テンプレート <el-table :data="データリスト"> &...

MySQLデータベース入門:マルチインスタンス構成方法の詳しい説明

目次1. マルチインスタンスとは2. 複数インスタンスのインストールの準備3. MYSQLの複数イン...

ウィンドウ環境で VScode を使用して仮想マシン MySQL に接続する方法

1. 仮想マシン側1. MySQLの設定ファイルを見つける:sudo vim /etc/mysql/...

MySQL で中国語を入力するときに発生するエラー 1366 の解決方法

MySQL で中国語を入力すると、次のエラーが発生します。エラー 1366: 1366: 行 1 の...

MySql でリモート接続を許可する方法

MySql でリモート接続を許可する方法この目標を達成するには、2つのことを行う必要がある。ユーザー...

Linux スクリプトの基礎を詳しく紹介

目次1. スクリプトvim環境2. シェルスクリプトで環境を定義する方法3. シェルスクリプト内の翻...

Vue のスロットの使用法と適用シナリオの詳細な分析

スロットとは何ですか? Vue では、子コンポーネント タグの中央に何もラップできないことはわかって...

Windows Server2014 にセキュリティを適用して MySQL をインストールする際のエラーに対する完璧な解決策

理由はインストール後にきちんとアンインストールされなかったためです。この問題を解決するには、次の点に...

Nginx 仮想ホストを構成する 3 つの方法 (ドメイン名に基づく)

Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮...

MySQLにデータを素早くインポートする方法

序文:日々の勉強や仕事の中で、データをエクスポートする必要に迫られることがよくあります。たとえば、デ...

Mac+IDEA+Tomcat の設定手順

目次1. ダウンロード2. インストールと解凍3. Tomcatを起動する4番目に、インストールが成...

iframe ページで js 関数を呼び出すには js を使用します

最近、私は毎日論文提案に取り組んでいます。自分のスキルを発揮して、再びWebをデザインしたくてうずう...

InnoDB エンジンのパフォーマンスを最適化するための my.cnf パラメータ構成

私はインターネット上で数え切れないほどの my.cnf 構成を読みましたが、言及されている構成のほと...

Vue3 プロジェクトで WeChat 認証ログインをエレガントに実装する方法

目次序文準備する実装のアイデアコードについて要約する序文WeChat 認証ログインは、WeChat ...