banner
xingli

xingli

猫娘爱好者

linuxログクリーンスクリプト

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 "ログクリーニングが完了しました。"
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。