linux

linux清理日志的脚本怎么写

小亿
90
2023-12-09 10:27:33
栏目: 智能运维

清理Linux日志的脚本可以使用以下命令:

#!/bin/bash

# 清理/var/log目录下的日志文件
# 可根据需要修改日志文件目录

# 设置要删除的日志文件的最大天数
MAX_DAYS=7

# 获取当前日期
CURRENT_DATE=$(date +"%Y%m%d")

# 遍历指定目录下的日志文件
for file in /var/log/*.log; do
    # 获取文件的最后修改日期
    last_modified=$(stat -c %y "$file" | awk -F ' ' '{print $1}')
    
    # 将日期转换为时间戳
    last_modified_timestamp=$(date -d "$last_modified" +"%s")
    current_date_timestamp=$(date -d "$CURRENT_DATE" +"%s")
    
    # 计算文件的天数差
    days_diff=$(( (current_date_timestamp - last_modified_timestamp) / (24*60*60) ))
    
    # 判断文件的天数差是否大于最大天数
    if [ "$days_diff" -gt "$MAX_DAYS" ]; then
        # 删除文件
        rm "$file"
        echo "Deleted file: $file"
    fi
done

上述脚本会遍历/var/log目录下的所有日志文件,并根据设定的MAX_DAYS值判断文件的最后修改日期是否大于最大天数。如果是,则删除文件并输出删除的文件名。

注意:运行该脚本需要具有适当的权限。

0
看了该问题的人还看了