linux の長期使用中に不要なログが大量に生成される可能性があります
これはストレージが少ない VPS にとって致命的です。ログがハードディスクを埋め尽くすと、サーバーのさまざまなサービスが正常に起動できなくなります。
これは私が書いたログクリーニングスクリプトで、不要なログをクリーンアップできます。
#!/bin/bash
# ログディレクトリとサイズ制限を定義
LOG_DIR="/var/log"
SIZE_LIMIT="20M"
# 関数:すべての圧縮ログファイルを削除
delete_compressed_logs() {
echo "すべての圧縮ログファイルを削除しています..."
find "$LOG_DIR" -type f \( -name "*.gz" -o -name "*.xz" -o -name "*.zip" \) -exec rm -f {} \;
}
# 関数:20MBを超えるログファイルを削除
delete_large_logs() {
echo "サイズが $SIZE_LIMIT を超えるログファイルを削除しています..."
find "$LOG_DIR" -type f -name "*.log" -size +"$SIZE_LIMIT" -exec rm -f {} \;
}
# 関数:重要なログファイルを空にする
truncate_critical_logs() {
echo "重要なログファイルを空にしています..."
> "$LOG_DIR/wtmp"
> "$LOG_DIR/btmp"
> "$LOG_DIR/lastlog"
}
# 関数:journalログをクリーンアップ
clean_journal() {
echo "journalログをクリーンアップしています..."
# journalctl --vacuum-time=7d
# またはサイズ制限でクリーンアップ
journalctl --vacuum-size=100M
}
# 関数:ディスク使用状況を表示し、容量情報を黄色で表示
report_disk_usage() {
echo -e "\n現在のディスク使用状況:"
du -sh "$LOG_DIR" | awk '{print "\033[33m" $1 "\033[0m", $2}'
}
# クリーンアップ操作を実行
report_disk_usage
delete_compressed_logs
delete_large_logs
truncate_critical_logs
clean_journal
report_disk_usage
echo "ログクリーニングが完了しました。"