タイトル: Linux で Systemd と Crontab を使用してログ ローテーションを実装する方法と手順
本文:
Linux システムでは、ログ ファイルに次のような記録が記録されます。システム内で発生した重要なイベントやエラー情報などのログファイルは時間の経過とともに大きくなり、ハードディスクの容量を占有するだけでなく、ログの閲覧が困難になります。この問題を解決するには、Systemd と Crontab を使用してログ ローテーションを実装します。つまり、ログ ファイルを定期的にバックアップし、アーカイブします。この記事では、Systemd と Crontab を使用してログ ローテーションの方法と手順を実装する方法を紹介し、具体的なコード例を示します。
1. Systemd を使用してログ ローテーションを実装する
sudo nano /etc/systemd/journald.conf.d/myapp-logrotate.conf
構成ファイルに次の内容を追加します。
[Journal] Storage=persistent MaxFileSec=1month
その中に、 "Storage" パラメータは、ログ ファイルの保存方法を指定します。 "persistent" は、ログ ファイルがディスク上に永続化されることを意味します。 「MaxFileSec」パラメータはログ ファイルの保存期間を指定します。ここでは 1 か月に設定されています。
設定ファイルを保存して終了します。
sudo systemctl restart systemd-journald.service
これで、Systemd は、次の設定に従ってログをローテーションします。構成ファイルのドキュメント。
2. Crontab を使用してログ ローテーションを実装する
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
保存して終了します。スクリプトファイル。
sudo chmod +x /usr/local/bin/logrotate-script.sh
crontab -e
Crontab ファイルに次の内容を追加します。
# 每天的凌晨0点执行日志轮转脚本 0 0 * * * /usr/local/bin/logrotate-script.sh
Crontab ファイルを保存して終了します。
これで、Crontab は毎日午前 0 時にログ ローテーション スクリプトを実行して、ログ ファイルをアーカイブしてクリアします。
概要:
上記の方法と手順を通じて、Systemd と Crontab を使用してログ ローテーションを実装できます。 Systemd を使用してログ ファイルの保存期間を設定し、Crontab を使用してログ ローテーション スクリプトを定期的に実行して、ログ ファイルをアーカイブおよびクリアします。合理的な構成と使用により、システム ログ ファイルを効果的に管理および維持できます。
以上がLinux で Systemd と Crontab を使用してログ ローテーションを実装する方法と手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。