ホームページ >運用・保守 >Linuxの運用と保守 >Linux で Systemd と Crontab を使用してログ ローテーションを実装する方法と手順

Linux で Systemd と Crontab を使用してログ ローテーションを実装する方法と手順

WBOY
WBOYオリジナル
2023-09-26 19:04:411794ブラウズ

Linux で Systemd と Crontab を使用してログ ローテーションを実装する方法と手順

タイトル: Linux で Systemd と Crontab を使用してログ ローテーションを実装する方法と手順

本文:

Linux システムでは、ログ ファイルに次のような記録が記録されます。システム内で発生した重要なイベントやエラー情報などのログファイルは時間の経過とともに大きくなり、ハードディスクの容量を占有するだけでなく、ログの閲覧が困難になります。この問題を解決するには、Systemd と Crontab を使用してログ ローテーションを実装します。つまり、ログ ファイルを定期的にバックアップし、アーカイブします。この記事では、Systemd と Crontab を使用してログ ローテーションの方法と手順を実装する方法を紹介し、具体的なコード例を示します。

1. Systemd を使用してログ ローテーションを実装する

  1. ログ ローテーション構成ファイルを作成する
    最初に、Systemd ログ ローテーション構成ファイルを作成する必要があります。ターミナルに次のコマンドを入力して、「myapp-logrotate.conf」という名前の構成ファイルを作成します。
sudo nano /etc/systemd/journald.conf.d/myapp-logrotate.conf

構成ファイルに次の内容を追加します。

[Journal]
Storage=persistent
MaxFileSec=1month

その中に、 "Storage" パラメータは、ログ ファイルの保存方法を指定します。 "persistent" は、ログ ファイルがディスク上に永続化されることを意味します。 「MaxFileSec」パラメータはログ ファイルの保存期間を指定します。ここでは 1 か月に設定されています。

設定ファイルを保存して終了します。

  1. Systemd ログ サービスの再起動
    ターミナルに次のコマンドを入力して、Systemd ログ サービスを再起動します。
sudo systemctl restart systemd-journald.service

これで、Systemd は、次の設定に従ってログをローテーションします。構成ファイルのドキュメント。

2. Crontab を使用してログ ローテーションを実装する

  1. ログ ローテーション スクリプトを作成する
    次に、Crontab ログ ローテーション スクリプトを作成する必要があります。ターミナルに次のコマンドを入力して、「logrotate-script.sh」という名前のスクリプト ファイルを作成します。
sudo nano /usr/local/bin/logrotate-script.sh

次のコードをスクリプト ファイルに貼り付けます。

#!/bin/bash

# 日志文件路径
logfile="/var/log/myapp/myapp.log"

# 归档目录路径
archive_dir="/var/log/myapp/archive"

# 归档文件名
archive_file="myapp_$(date +'%Y%m%d%H%M%S').log"

# 压缩归档文件
tar -czvf $archive_dir/$archive_file $logfile

# 清空日志文件
> $logfile

保存して終了します。スクリプトファイル。

  1. スクリプト実行権限を付与する
    ターミナルに次のコマンドを入力して、スクリプト実行権限を付与します。
sudo chmod +x /usr/local/bin/logrotate-script.sh
  1. Crontab タスクを作成します
    最後に、ログ ローテーション スクリプトを定期的に実行するには、Crontab タスクを作成する必要があります。ターミナルに次のコマンドを入力して Crontab を編集します。
crontab -e

Crontab ファイルに次の内容を追加します。

# 每天的凌晨0点执行日志轮转脚本
0 0 * * * /usr/local/bin/logrotate-script.sh

Crontab ファイルを保存して終了します。

これで、Crontab は毎日午前 0 時にログ ローテーション スクリプトを実行して、ログ ファイルをアーカイブしてクリアします。

概要:

上記の方法と手順を通じて、Systemd と Crontab を使用してログ ローテーションを実装できます。 Systemd を使用してログ ファイルの保存期間を設定し、Crontab を使用してログ ローテーション スクリプトを定期的に実行して、ログ ファイルをアーカイブおよびクリアします。合理的な構成と使用により、システム ログ ファイルを効果的に管理および維持できます。

以上がLinux で Systemd と Crontab を使用してログ ローテーションを実装する方法と手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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