ホームページ > 運用・保守 > Linuxの運用と保守 > Systemd と Crontab を使用して Linux システムでスクリプトを定期的に実行する方法

Systemd と Crontab を使用して Linux システムでスクリプトを定期的に実行する方法

WBOY
リリース: 2023-09-26 14:33:39
オリジナル
979 人が閲覧しました

Systemd と Crontab を使用して Linux システムでスクリプトを定期的に実行する方法

タイトル: Systemd と Crontab を使用して Linux システムでスクリプトを定期的に実行する

本文:
Linux システムでは、多くの場合、いくつかのスクリプト タスクを定期的に実行する必要があります。データのバックアップ、ログのクリーニングなど。この記事では、Systemd と Crontab を使用してスクリプトを定期的に実行する機能を実装する方法と、具体的なコード例を紹介します。

1. Systemd を使用してスクリプトを定期的に実行する

Systemd は、Linux システムの初期化システムおよびサービス マネージャーであり、Systemd スケジュールされたタスクを作成することで、スクリプトを定期的に簡単に実行できます。

  1. .service ファイルを作成して、スケジュールされたタスクの関連パラメーターを定義します。定期的なログ クリーニングを例に挙げると、cleanuplog.service という名前のファイルを作成できます。
[Unit]
Description=Cleanup Log Service

[Service]
Type=simple
ExecStart=/path/to/cleanuplog.sh

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

このうち、ExecStart は実行するスクリプトのパスを指定するもので、実際の状況に応じて変更する必要があります。ファイルを保存して閉じます。

  1. .timer ファイルを作成して、スケジュールされたタスクのトリガー条件と実行ロジックを定義します。例として毎日午前 1 時に実行すると、cleanuplog.timer という名前のファイルを作成します。
[Unit]
Description=Cleanup Log Timer

[Timer]
OnCalendar=*-*-* 01:00:00

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

このうち、OnCalendar は、スケジュールされたタスクのトリガー時刻 (毎日午前 1 時) を指定します。ファイルを保存して閉じます。

  1. 2 つのファイルを /etc/systemd/system ディレクトリに移動します。
$ sudo mv cleanuplog.service /etc/systemd/system
$ sudo mv cleanuplog.timer /etc/systemd/system
ログイン後にコピー
  1. スケジュールされたタスクを有効にして開始します。
$ sudo systemctl daemon-reload
$ sudo systemctl enable cleanuplog.timer
$ sudo systemctl start cleanuplog.timer
ログイン後にコピー

これで、スクリプトを定期的に実行するタスクが作成され、正常に開始されました。

2. Crontab を使用してスクリプトを定期的に実行する

Crontab は、コマンドまたはスクリプトを定期的に実行するためのツールです。Crontab ファイルを編集することで、スケジュールされたスクリプトの実行のニーズを簡単にカスタマイズできます。

  1. 現在のユーザーの Crontab ファイルを編集します。
$ crontab -e
ログイン後にコピー
  1. 開いているファイル内のスクリプトを定期的に実行するコマンドを追加します。毎日午前 2 時に実行する場合を例として、次の内容を追加できます。
0 2 * * * /path/to/cleanuplog.sh
ログイン後にコピー

このうち、0 2 * * * は毎日午前 2 時を表し、/path/to/cleanuplog.sh はスクリプトのパスを表します。実際の状況に応じて変更する必要があります。

  1. ファイルを保存して閉じます。

これで、スクリプトを定期的に実行するタスクが正常に追加されました。

概要:
この記事では、Systemd と Crontab を使用して Linux システムでスクリプトを定期的に実行する方法を紹介し、具体的なコード例を示します。実際のニーズに応じて、スケジュールされたタスクを実装するための適切な方法を選択することで、作業効率と自動管理機能を向上させることができます。この記事が、読者がスクリプト実行のタイミングを計る方法を学び、応用するのに役立つことを願っています。

以上がSystemd と Crontab を使用して Linux システムでスクリプトを定期的に実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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