ホームページ >運用・保守 >Linuxの運用と保守 >Linux Systemd Crontab サンプル チュートリアル: システム ログを定期的にクリーンアップする方法

Linux Systemd Crontab サンプル チュートリアル: システム ログを定期的にクリーンアップする方法

王林
王林オリジナル
2023-09-26 14:46:501378ブラウズ

Linux Systemd Crontab实例教程:如何定时清理系统日志

Linux Systemd Crontab インスタンス チュートリアル: システム ログを定期的にクリーンアップする方法

1. はじめに

Linux システムでは、システム ログ ファイルがシステム操作を記録します。ステータス、エラー、その他の重要な情報を記録するための主要なファイル。時間の経過とともに、システム ログ ファイルのサイズが大きくなり、多くのディスク領域を占有する可能性があります。システムの正常な動作を維持するには、システム ログを定期的にクリーンアップする必要があります。この記事では、Systemd Crontab を使用してシステム ログを定期的にクリーンアップする方法を詳しく紹介し、具体的なコード例を示します。

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

Systemd Crontab は、タスクを定期的に実行するために使用できる Linux システムに基づくサービス管理ツールです。 Systemd Crontab を使用してスクリプトを定期的に実行するための具体的な手順は次のとおりです。

  1. ログをクリーンアップするスクリプトを作成する

まず、ログをクリーンアップするスクリプトを作成する必要があります。システムログ。シェル スクリプト言語を使用して記述できます。以下はログ クリーニング スクリプト (clean_logs.sh) の例です:

#!/bin/bash

# 清理/var/log目录下的系统日志文件
find /var/log -type f -name "*.log" -exec rm -rf {} ;

# 重启系统日志服务
systemctl restart rsyslog

上記のスクリプトは、find コマンドを使用して、/var/log ディレクトリ内のすべてのログ ファイルを検索します。 、rm コマンドを使用してこれらのファイルを削除します。最後に、systemctl コマンドを使用して rsyslog サービスを再起動し、システム ログ機能が正常であることを確認します。

  1. Systemd サービス ユニット ファイルの作成

次に、実行するスクリプトを定義する Systemd サービス ユニット ファイルを作成する必要があります。次の内容を含む clean_logs.service という名前のファイルを作成します。

[Unit]
Description=Clean system logs

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

[Install]
WantedBy=default.target

ExecStart のパスを実際のスクリプト パスに変更する必要があります。

  1. Systemd Crontab 構成ファイルの作成

/etc/systemd/system/ ディレクトリに、clean_logs.timer という名前の Systemd Crontab 構成ファイルを次の内容で作成します。

[Unit]
Description=Run clean_logs.service every day

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

上記の設定ファイルでは、OnCalendar によってスケジュールされたタスクの実行時間が設定され、1 日に 1 回実行されるように設定されています。 Persistent を true に設定すると、システムがシャットダウンされても、次回起動時にタスクが実行され続けることを意味します。

  1. スケジュールされたタスクの開始と管理

上記の手順を完了したら、次のコマンドに従ってスケジュールされたタスクを開始および管理できます。

スケジュールされたタスクの開始タスク: systemctl start clean_logs.timer
スケジュールされたタスクを停止します: systemctl stop clean_logs.timer
スケジュールされたタスクを再開します: systemctl restart clean_logs.timer
スケジュールされたタスクのステータスを表示します: systemctl status clean_logs.timer

3. スケジュールされたタスクの実行結果の表示

##スケジュールされたタスクの実行が完了したら、タスクの実行結果を表示して、システム ログが正常にクリアされたかどうかを確認します。次の 2 つの方法で表示できます。

Systemd Crontab ログの表示:journalctl -u clean_logs.timer

システム ログ ファイルの表示: tail -n 100 /var/log/syslog

4. 概要

Systemd Crontab を使用すると、システム ログを定期的に簡単にクリーンアップして、大きすぎるログ ファイルによってディスク領域が占有されるのを避けることができます。この記事では、Systemd Crontab を使用してシステム ログを定期的にクリーンアップする方法を、特定のコード例を通じて詳しく紹介します。この記事が役に立ち、Linux システムのログ ファイルをより適切に管理できるようになることを願っています。

以上がLinux Systemd Crontab サンプル チュートリアル: システム ログを定期的にクリーンアップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。