Linux スケジュールタスクの関連操作の概要

Linux スケジュールタスクの関連操作の概要

皆様の参考と操作を容易にするために、様々な主要ウェブサイトを検索し、関連するスケジュールされたタスクの動作をテストしました。

1. cronの紹介

よく使われる crontab コマンドは、cron table の略です。これは cron の設定ファイルであり、ジョブ リストとも呼ばれます。関連する設定ファイルは、次のフォルダーにあります。

1.1. Cron関連ディレクトリ

  • /var/spool/cron/ ディレクトリには、root を含む各ユーザーの crontab タスクが保存されます。各タスクには作成者の名前が付けられます。
  • /etc/crontab このファイルは、さまざまな管理および保守タスクのスケジュールを担当します。
  • /etc/cron.d/ このディレクトリは、実行される crontab ファイルまたはスクリプトを保存するために使用されます。
  • また、スクリプトを /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly ディレクトリに配置して、1 時間ごと、1 日ごと、1 週間ごと、または 1 か月ごとに実行することもできます。

1.2. crontabの共通コマンド

  • crontab [-u username] //ユーザーテーブルを省略すると、現在のユーザーのcrontabを操作することになります
  • crontab [-u ユーザー名] -e //ワークシートを編集)
  • crontab [-u ユーザー名] -l //ワークシート内のコマンドを一覧表示します)
  • crontab [-u ユーザー名] -r //ジョブを削除)

1.3. 仕様書の作成

1. 各ポジションのパラメータは以下の通りで、詳細には注意事項もあります。

述べる:

1) *は任意の時間(分、時間、日、月、週)に実行されることを意味します

2) - 5時~7時などの時間範囲を示します

3) は時間間隔を表します。たとえば、6,0,4 は土曜日、日曜日、木曜日を表します。

4) /1はn時間単位ごとを意味します。例:*/10は10分ごと

2. スケジュールされたタスクを設定する

2.1. crontab でスケジュールされたタスクをグローバルに設定する --- タスクがリンク、curl、またはファイルへの書き込みである場合

(1)crontab -eコマンドを実行する

(2)スケジュールされたタスクを書く

スケジュールされたタスクがリンクの場合

*/1 * * * * /usr/local/curl (独自のcurlパス) www.baidu.com >/dev/null 2>$1

ファイルに内容を書き込む必要がある場合

*/1 * * * * エコー "hello" >> abc.log

いくつかのポイントを共有したいと思います

  • 標準入力0はキーボードからの入力を取得します /proc/self/fd/0
  • 標準出力1は画面(コンソール)に出力されます /proc/self/fd/1
  • エラー出力2は画面(コンソール)に出力されます。/proc/self/fd/2
  • /dev/null は Linux の空のデバイス ファイルを表します。このファイルに書き込まれたすべての内容は失われ、一般に「ブラック ホール」として知られています。
  • >/dev/nullは「ブラックホール」にエラーを出力することを意味します
  • >/dev/null 2>&1 デフォルトは 1 で、1>/dev/null 2>&1 と同じです。これは、標準出力を「ブラックホール」にリダイレクトし、エラー出力 2 を標準出力 1 にリダイレクトすることを意味します。つまり、標準出力とエラー出力の両方が「ブラックホール」に入ります。
  • 2>&1 >/dev/null は、エラー出力 2 を標準出力 1、つまり画面にリダイレクトし、標準出力が「ブラックホール」に入り、エラー出力が画面に表示されることを意味します。
  • ここでの「&」の役割については、次のように理解できます。2>/dev/null はファイルにリダイレクトし、次に 2>&1 です。ここで & が削除されると、エラー出力はファイル 1 に送信され、& を使用すると 1 が標準出力であることを示します。

(3)スケジュールされたタスクを保存する

  1. iを押してタスクを挿入し、スケジュールされたタスクを書き込む
  2. Esc キーを押して終了し、 :wq と入力してから、 Ctrl + C キーを押して正常に保存します。

2.2. .shメソッドの実装

(1)シェルスクリプトを作成する

  • プロジェクト内に.shという拡張子のファイルを作成します。
  • このディレクトリのこのシェルファイルに十分な権限を追加します
chmod -R 777 ファイル名を作成します

(2)スケジュールされたタスクにシェルスクリプトを書き込む

対応するシェルファイルをスケジュールされたタスクに書き込む

*/1 * * * * .shファイルの絶対パス>/dev/null 2>$1

スケジュールされたタスクを実行するときに、対応するシェルファイルをログに書き込みます。

*/1 * * * * .shファイルの絶対パス >> a.log >/dev/null 2>$1

(3)crondを再起動する

サービスcrondの再起動

(4)プロジェクトに書かれているか確認する

crontab -l

ご視聴ありがとうございました。ご質問がありましたら、コメント欄にメッセージを残してください。

要約する

Linux のスケジュールされたタスクの関連操作に関するこの記事はこれで終わりです。Linux のスケジュールされたタスクの関連操作の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linuxでcronを使用して定期的にタスクを実行する方法
  • Linux crontab スケジュールタスクの設定方法(詳細説明)
  • Linuxはcrontabを使用してPHP実行計画のタイミングタスクを実装します
  • Linux で crontab を使用してスケジュールされたタスクを 1 秒に 1 回実行する方法
  • サーバーは定期的にスケジュールされたタスクを実行し、定期的にページにアクセスします (Windows/Linux)
  • Linuxでスケジュールされたタスクを設定する方法
  • Linux での Python スクリプトの自動起動とスケジュールされたタスクの詳細な説明
  • Linux でタスクを定期的に実行する方法と crontab の使用方法の説明 (収集およびソート済み)
  • Linuxは毎週45日前のログをクリーンアップするためにスケジュールされたタスクを使用します
  • Linux で PHP を使用して cron タスクをスケジュールする方法の詳細な説明

<<:  MySQL 8.0.18 圧縮パッケージのインストールと忘れたパスワードのリセット時に遭遇する落とし穴

>>:  mysql bin-log ログファイルを sql ファイルに変換する方法

推薦する

MySQLがウィンドウ関数で合計関数を実行するときに発生する可能性のあるバグ

MySql のウィンドウ関数を使用して統計データを収集する際に、小さな問題が見つかったので、それにつ...

最も完全なpackage.json分析

目次1. 概要2. 名前フィールド3. バージョンフィールド4. 説明フィールド5. キーワードフィ...

ドロップダウンメニューとスライドメニューのデザイン例

ドロップダウン メニューやスライド メニューを使用している Web サイトをたくさん見つけたので、私...

docker run によって起動されたコンテナがハングしてデータが失われた場合の対処方法

シナリオの説明あるシステムでは、機能サービスはdocker stack deploy xxxで起動し...

Vue はコンポーネント間の通信をどのように実装しますか?

目次1. 父と息子のコミュニケーション1.1 親コンポーネント --> 子コンポーネント1.2...

MySQLのルートパスワードをリセットする最も簡単な方法

私の MySQL バージョンは MYSQL V5.7.9 です。古いバージョンを使用してください: ...

MySQL での limit の使用方法は何ですか (推奨)

SELECT * FROM テーブル名制限m,n; SELECT * FROM テーブル LIMI...

MySQLカバーインデックスの利点

一般的な提案は、WHERE 条件のインデックスを作成することですが、これは実際には一方的です。インデ...

Ubuntu での Subversion (SVN) の詳細なインストールと設定

ソフトウェア開発者であれば、Subversion に精通している必要があります。 Subversio...

CSS マージンの重複とその防止方法

2 つ以上のブロックレベル ボックスの垂直に隣接するエッジが重なり合っています。結果として得られる境...

Dockerfile を使用して Docker イメージをカスタマイズする方法

Dockerfile を使用したイメージのカスタマイズイメージのカスタマイズとは、実際には各レイヤー...

border-radius 値の設定に関する質問

問題記録今日はプログレスバーに似た小さなコンポーネントを完成させるつもりでした。プロトタイプは次のよ...

フォーム検証機能を実装するためのネイティブ js

目次開発の際には、機能を段階的に分析して実装することで、明確な考え方を保つことができます。 1. フ...

Tomcatの起動が遅い問題を素早く解決、超簡単

今日、私はクラスメートが問題を解決するのを手伝いました - Tomcat の起動が非常に遅く、約 5...

JavaScript での実行コンテキストと実行スタックの例の説明

JavaScript - 原則シリーズ日常の開発では、既存のプロジェクトを引き継ぐときは常に、まず他...