在CentOS系统中,编写一个Java日志清理脚本可以帮助你自动管理日志文件,防止它们占用过多磁盘空间。以下是一个示例脚本,它将删除指定目录下超过指定天数的日志文件。
#!/bin/bash
# 配置参数
LOG_DIR="/path/to/your/log/directory" # 替换为你的日志目录路径
DAYS_TO_KEEP=7 # 替换为你希望保留的天数
# 检查日志目录是否存在
if [ ! -d "$LOG_DIR" ]; then
echo "日志目录不存在: $LOG_DIR"
exit 1
fi
# 删除超过指定天数的日志文件
find "$LOG_DIR" -type f -name "*.log" -mtime +$DAYS_TO_KEEP -exec rm -f {} \;
echo "日志清理完成,删除了超过 $DAYS_TO_KEEP 天的日志文件。"
配置参数:
LOG_DIR:指定日志文件所在的目录路径。DAYS_TO_KEEP:指定保留日志文件的天数。检查日志目录是否存在:
if [ ! -d "$LOG_DIR" ]; then 检查日志目录是否存在,如果不存在则输出错误信息并退出脚本。删除超过指定天数的日志文件:
find 命令查找指定目录下所有 .log 文件,并使用 -mtime +$DAYS_TO_KEEP 参数筛选出超过指定天数的文件。-exec rm -f {} \; 对筛选出的文件执行删除操作。输出清理完成信息:
clean_logs.sh。LOG_DIR 和 DAYS_TO_KEEP 参数,以适应你的需求。chmod +x clean_logs.sh
./clean_logs.sh
为了定期执行这个脚本,你可以使用 cron 定时任务。以下是如何设置一个每天凌晨2点执行脚本的示例:
编辑 crontab 文件:
crontab -e
添加以下行:
0 2 * * * /path/to/clean_logs.sh >> /var/log/clean_logs.log 2>&1
这行配置表示每天凌晨2点执行 clean_logs.sh 脚本,并将输出和错误信息记录到 /var/log/clean_logs.log 文件中。
通过以上步骤,你可以轻松地在CentOS系统中设置一个自动化的Java日志清理脚本。