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を完全にアンインストールする方法

推薦する

CSS3 はドラッグ可能なルービックキューブの 3D 効果を実現します

主に使用される知識ポイント: •css3 3D変換 •ネイティブjsマウスドラッグイベント•表示:グ...

Linux で削除できないファイル/フォルダの解決方法

序文最近、弊社のサーバーがハッカーの攻撃を受け、一部のファイルの属性が変更されたため、ウイルスファイ...

MySQLカスタム関数の簡単な使用例

この記事では、例を使用して MySQL カスタム関数の使用方法を説明します。ご参考までに、詳細は以下...

Vue のフィルターウィジェットの詳細な使用方法

この記事では、参考までにVue More Filter Itemウィジェットの実装方法を例として紹介...

便利なモバイルスクロールプラグイン BetterScroll

目次スクロールをスムーズにするBetterScrollのスクロール体験慣性ローリングエッジリバウンド...

HTMLテーブルではテーブルの外側の境界線のみが表示されます

質問があります。Dreamweaver で、3 行 1 列のログイン フォーム (ログイン、登録、パ...

Web アプリ開発時間を短縮する 10 の時間を節約するヒント (グラフィカル チュートリアル)

今日の開発環境では、速いほど良いです。 「迅速なアプリケーション開発」、「アジャイル ソフトウェア開...

Vueのレスポンシブシステムの原理の詳細な説明

目次Vueのレスポンシブシステムの基本原則1. Object.definePropertyの使い方を...

MySQL における EXISTS と IN の使用法の比較

1. 使用法: (1)EXISTSの使用 ucsc_project_batch a から、存在する場...

Django2.* + Mysql5.7 開発環境統合チュートリアル図

環境: 10.12 の新機能Python 3.6 MySQL 5.7.25 の場合ジャンゴ 2.2....

MySQL フィールドで NOT NULL を使用する必要があるのはなぜですか?

私は最近新しい会社に入社したのですが、データベース設計にいくつか小さな問題があることに気付きました。...

Linux での Nginx アンチホットリンクと最適化の実装コード

バージョン番号を非表示バージョン番号は非表示になっていません。セキュリティを強化するために、バージョ...

マウスの尾行効果を実現する JavaScript

マウス効果では、setTimeout を使用して固定時間にノードを生成し、ノードを削除し、生成された...

MysqlクエリJSON結果に関連する関数の概要

JSON 形式のフィールドは、MySQL 5.7 で追加された新しい属性ですが、基本的には文字列とし...

ページング効果を実現するNode+Express

この記事では、ページング効果表示を実現するためのnode+expressの具体的なコードを参考までに...