Linux でシステムのスケジュールされたタスクを構成する方法

PHPz
リリース: 2023-07-06 11:58:39
オリジナル
16567 人が閲覧しました

Linux でシステムのスケジュールされたタスクを構成する方法

Linux システムでは、スケジュールされたタスクは、データのバックアップや一時ファイルのクリーンアップなど、特定の操作を定期的に実行するために使用できる非常に一般的で実用的な機能です。 . 定期的にソフトウェアを更新するなど。この記事では、Linux システムでシステム スケジュールされたタスクを構成する方法を紹介し、対応するコード例を添付します。

Linux システムでスケジュールされたタスクを実装する方法は数多くありますが、最も一般的に使用されるのは cron タスクと systemd タイマーです。以下にこれら 2 つの方法の設定方法とコード例を紹介します。

1. cron タスクを使用してスケジュールされたタスクを設定する

  1. cron タスク テーブルを編集する
    コマンド ラインに次のコマンドを入力して、現在のユーザーの cron タスク テーブルを編集します:
crontab -e
ログイン後にコピー

システム全体の cron タスク テーブルを編集する必要がある場合は、次のコマンドを使用できます。

sudo crontab -e
ログイン後にコピー
  1. cron タスクの書き込み
    開いているファイルで、それぞれ線はスケジュールされたタスクを表します。各行の形式は次のとおりです。
分钟 小时 日 月 周 要执行的命令
ログイン後にコピー

このうち、分、時、日、月、週はタスクの実行時刻を表し、ワイルドカード文字 * を使用して任意の値を表すことができます。 。実行するコマンドは定期的に実行する必要がある操作です。

たとえば、毎日午前 1 時にスクリプトを実行するスケジュールされたタスクの例を次に示します。

0 1 * * * /path/to/script.sh
ログイン後にコピー
  1. cron タスクを保存する
    cron タスクを編集した後、Ctrl キーを押して終了します。システムは、変更された cron タスク リストを対応する場所に自動的に保存します。

ヒント: cron タスクを削除する必要がある場合は、次のコマンドを使用します。

crontab -r
ログイン後にコピー

2. systemd タイマーを使用して、スケジュールされたタスクを構成します

  1. サービス ファイルを 1 つ作成する

サフィックス .service を持つファイルを /etc/systemd/system/ ディレクトリに作成します (例: ) mytask.service

sudo nano /etc/systemd/system/mytask.service
ログイン後にコピー
  1. サービスファイルの内容を記述する

作成したサービスファイルに以下の内容を追加します。

[Unit]
Description=My Task

[Service]
ExecStart=/path/to/script.sh

[Install]
WantedBy=multi-user.target
ログイン後にコピー

その内、 ExecStart は、実行されるスクリプト ファイルを示します。WantedBy=multi-user.target は、システムの起動時にこのタスクが実行される必要があることを示します。

  1. タイマー ファイルの作成

/etc/systemd/system/.timer という名前のタイマー ファイルを作成します。 directory mytask.timer などのサフィックスが付いたファイル。

sudo nano /etc/systemd/system/mytask.timer
ログイン後にコピー
  1. タイマー ファイルの内容を記述する

作成したタイマー ファイルに、次の内容を追加します。

[Unit]
Description=Run My Task every day

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target
ログイン後にコピー

その中に、 OnCalendar=daily は、このタスクが 1 日に 1 回実行されることを意味し、Persistent=true は、タスクの実行時間前にシステムがシャットダウンされても、次回の起動時にタスクが実行されることを意味します。

  1. systemd 構成のリロード

次のコマンドを実行して、systemd に構成ファイルを再ロードさせます:

sudo systemctl daemon-reload
ログイン後にコピー
  1. スケジュールされたタスクを開始します

次のコマンドを実行してスケジュールされたタスクを開始します:

sudo systemctl start mytask.timer
ログイン後にコピー
  1. スケジュールされたタスクを起動時に自動的に開始するように設定します

次のコマンドを実行して設定しますブート時に自動的に開始するスケジュールされたタスク:

sudo systemctl enable mytask.timer
ログイン後にコピー

上記は、Linux システムでシステム スケジュールされたタスクを構成するための手順とコード例です。 cronタスクやsystemdタイマーを利用することで、定期的に必要な操作を簡単に実行でき、作業効率やシステム管理の利便性が向上します。

以上がLinux でシステムのスケジュールされたタスクを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート