Linux crontab コマンドの使用

Linux crontab コマンドの使用

1. コマンドの紹介

contab (cron テーブル) コマンドは、Windows のスケジュールされたタスクと同様に、定期的に実行する必要があるユーザーのタスクを管理するために使用されます。オペレーティング システムをインストールすると、このサービス ツールがデフォルトでインストールされ、crond プロセスが自動的に開始されます。crond プロセスは、実行するタスクがあるかどうかを 1 分ごとに確認し、タスクがある場合はタスクを実行します。

Linux でのタスク スケジューリングは、システム タスク スケジューリングとユーザー タスク スケジューリングの 2 つのカテゴリに分けられます。

システム タスクのスケジュール: キャッシュ データをハード ディスクに書き込む、ログをクリーンアップするなど、システムが定期的に実行する必要がある作業。 /etc/crontab ファイルは、システム タスクのスケジュール設定用の構成ファイルです。

ユーザー タスクのスケジュール設定: ユーザー データのバックアップ、スケジュールされた電子メール リマインダーなど、ユーザーが定期的に実行する必要があるタスク。ユーザーは crontab ツールを使用して、スケジュールされたタスクを独自にカスタマイズできます。すべてのユーザー定義の crontab ファイルは /var/spool/cron ディレクトリに保存され、ファイル名はユーザー名と一致します。

システム管理者は、/etc/cron.deny ファイルと /etc/cron.allow ファイルを使用して、ユーザーが独自の crontab ファイルを持つことを禁止または許可できます。

2. コマンド形式

crontab [-u USER] ファイル
crontab [-u ユーザー] [-l | -r | -e] [-i] [-s]
crontab -n [ ホスト名 ]
crontab -c

3. オプションの説明

-う
	スケジュールされたタスクを設定するためのユーザー名を指定します -l
	現在スケジュールされているタスクを一覧表示 -r
	スケジュールされたタスクを削除する -e
	ユーザーのスケジュールされたタスクを編集します。タスクは、/var/spool/cron ディレクトリ内のユーザー名と同じ名前のファイルに保存されます。
	スケジュールされたタスクを削除する前に、ユーザーに削除を確認するかどうかを確認します -s
	編集/置換する前に、現在のSELinuxセキュリティコンテキスト文字列をMLS_LEVELとしてcrontabファイル-n [HOSTNAME]に追加します。
	このオプションは、クラスタ環境をサポートするために cron(8) が -c オプションで起動された場合にのみ使用され、crontab ファイルで指定されたスケジュールされたタスクをクラスタ内のどのホストが実行するかを指定するために使用されます。ホスト名が省略された場合、gethostname(2)によって返されるローカルホスト名が使用されます。
	このオプションは、クラスタ環境をサポートするために cron(8) が -c オプションで起動された場合にのみ使用されます。これは、クラスタ内のどのホストが現在 crontab ファイルでスケジュールされたタスクを実行しているかを照会するために使用されます。

4. ユーザープロフィール

crontab ファイルは、ユーザーのスケジュールされたタスクを、/var/spool/cron ディレクトリ内のユーザー名と同じ名前のファイルに特定の形式で保存します。たとえば、root ユーザーの場合、タスクを追加すると、パスの下に root ファイルが作成されます。 Linux cron サービスは、/var/spool/cron ディレクトリの下にあるすべてのコンテンツを 1 分ごとに読み取ります。

crontab ファイルの各行はタスクを表します。各タスクは 6 つのフィールドに分かれています。最初の 5 つのフィールドは時間フィールドで、6 番目のフィールドは実行されるコマンドです。形式は次のとおりです。

分 時間 日 月 週 コマンド

minute: 分、値の範囲は 0 から 59 です。
hour: 時間、値の範囲は 0 から 23 です。
曜日、値の範囲は 1 ~ 31 です。
month: 月。値の範囲は 1 ~ 12、または jan、feb、mar、apr... です。
week 曜日。値の範囲は 0 ~ 7、つまり sun、mon、tue、wed、thu、fri、sat です。 0 と 7 はどちらも日曜日を表すことに注意してください。
command は実行されるコマンドであり、システム コマンドまたは自分で作成したスクリプト ファイルになります。

上記の各時間フィールドでは、次の特殊文字も使用できます。

* はすべての可能な値を示します。たとえば、minute は * で、これはコマンドが 1 分ごとに実行されることを意味します。
、カンマで区切られた値のリストを指定できます。例:1,2,5,7,8,9
- 整数の間にダッシュを使用して範囲を表すことができます。たとえば、2-6 は 2、3、4、5、6 を表します。
/ スラッシュを使用して時間間隔の頻度を指定できます。たとえば、minute は */2 で、これはコマンドが 2 分ごとに実行されることを意味します。

crontab ファイルのコメント記号は # であることに注意してください。

5. システム構成ファイル

ユーザーの crontab ファイルに加えて、スケジュールされたタスクに関連するシステム構成ファイルは次のとおりです。

/etc/crontab システムのスケジュールされたタスク設定ファイル/etc/cron.d 定期的にタスクを自動的に実行する/etc/cron.hourly 1 時間ごとに実行されるタスク/etc/cron.daily 毎日実行されるタスク/etc/cron.weekly 毎週実行されるタスク/etc/cron.monthly 毎月実行されるタスク/etc/cron.allow このファイルにリストされているユーザーは、スケジュールされたタスクの実行を許可されます/etc/cron.deny このファイルにリストされているユーザーは、スケジュールされたタスクの実行を許可されません/var/log/cron Crontab ログ ファイル

Linux cron サービスは、/etc/crontab ファイルと /etc/cron.d ディレクトリの下にあるすべてのコンテンツを 1 分ごとに読み取ります。 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly の下のタスクも、対応する期間に応じて間接的に呼び出されます。

6. 一般的な例

(1)スケジュールされたタスクを追加します。

crontab -e
* * * * * コマンド # 1分ごとにコマンドを実行する
3,15 * * *コマンド#3,15の3,15 8-11 * *コマンド#午前8時から11:00までの3,15分の3,15 8-11 * * 1 commad#execute exute exute exute exut午前8時から11:00まで3,15 8-11 1 1 *コマンド#毎年1月1日の午前8時から11:00までの3番目と15分に実行されます0 */2 * * * */SBIN/SERVICE HTTPD RESTART#RESTART HTTPD

(2)スケジュールされたタスクを確認します。

crontab -l

(3)スケジュールされたタスクを削除します。つまり、/var/spool/cronディレクトリ内のcrontabファイルをクリアします。危険な行為ですので必ずバックアップを行ってください。

crontab -r

(4)指定されたcrontabファイルを/var/spool/cronディレクトリに復元します。

crontab ファイル

上記は Linux crontab コマンドの使用に関する詳細な内容です。Linux crontab コマンドの詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

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

<<:  MySQL テーブル作成外部キー エラーの解決方法

>>:  MacでNodeとnpmを完全にアンインストールする方法

推薦する

Vue テンプレート構成と Webstorm コード形式仕様設定

目次1. コンパイラコードフォーマット仕様設定2. Vueテンプレートの設定1. コンパイラコードフ...

Linux カーネル デバイス ドライバー proc ファイル システム ノート

/***************** * proc ファイルシステム***************...

複数人チャットルームを実現する js コード

この記事の例では、多人数チャットルームを実装するためのjsコードの具体的なコードを参考までに共有して...

MySQL 制約の超詳細な説明

目次MySQL 制約操作1. 非ヌル制約2. ユニーク制約3. 主キー制約4. 外部キー制約5. カ...

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...

HTML+CSS+JavaScript でガールフレンド版のスクラッチ カードを作成します (一度見ればすぐに覚えられます)

誰もがスクラッチ チケットで遊んだことがあると思います。子供の頃、ポケットにお金が入るとすぐに友達に...

MySqlは、外部ネットワーク接続クライアントの低速問題を解決するためにskip-name-resolveを使用します。

Tencent Cloud上に構築されたMySQLは、開発用コンピュータでNavicatを使用して...

MySQL マスターライブラリ binlog (master-log) とスレーブライブラリ relay-log 間のコードの詳細な説明

メインライブラリのバイナリログ: # 2420 で #170809 17:16:20 サーバー ID...

LeetCode の SQL 実装 (196. 重複するメールボックスを削除する)

[LeetCode] 196.重複したメールを削除するSQL クエリを記述して、Person とい...

リンクをクリックしたときにファイルのダウンロードダイアログボックスをポップアップ表示するには、HTML で href を使用します。

今日、新しい技を学びました。あまりやったことがなかったので、今まで知りませんでした...目的: リン...

Linux での MySql centos7 のバイナリコンパイルとインストールに関するチュートリアル

// これをインストールするのに丸一日かかったので、記録するためにメモを書きました。 //何か問題が...

Linuxディレクトリ構造の詳細な紹介

Linuxを学び始めるときは、まずLinuxの標準ディレクトリ構造を理解する必要があります。 / r...

ウェブデザイン実践者必読のキャリアプラン

原文記事、転載の際は著者と出典を明記してください! Web デザインは間違いなくテクノロジーであり、...

中国における中国語ドメイン名の人気は新たなクライマックスを迎えた

<br />外交部などの中央政府機関、各レベルの地方政府、その他の国家機関や部門が率先し...

データベースマルチテーブル接続クエリの実装方法の詳細説明

データベースマルチテーブル接続クエリの実装方法の詳細説明結合演算子を使用して複数のテーブルクエリを実...