centos7自动清理nohup.out文件、*.log文件
1、自动定时清空nohup.out文件内容(不删除该文件)
1、输入命令:crontab -e
2、写入语句:
# 每2分钟清理大于5m的nohup.out文件
*/2 * * * * find /usr/local/soft/projects -name "nohup.out" -size +5M -exec /bin/sh -c 'echo -n > {}' \;
# 每天凌晨2点执行清空大于20m的nohup.out
0 2 * * * find /usr/local/soft/projects -name "nohup.out" -size +20M -exec /bin/sh -c 'echo -n > {}' \;
3、将/usr/local/soft/projects提换为自己的nohup.out文件所在目录,保存退出,系统会自行定时执行。
2、自动删除*.log文件
1、输入命令:crontab -e
2、写入语句:
# 每2分钟清理7天前的*.gz文件(我的日志是被打包压缩了的)
*/2 * * * * find /data/logs/new-grid-platform -name "*.gz" -type f -mtime +7 -exec rm {} \;
# 每天凌晨2点执行清理7天前的*.gz文件(我的日志是被打包压缩了的)(修改时间超过7天)
*/2 * * * * find /data/logs/new-grid-platform -name "*.gz" -type f -mtime +7 -exec rm {} \;
3、将/usr/local/soft/projects提换为自己的nohup.out文件所在目录,保存退出,系统会自行定时执行。
3、使用shell文件执行
1、创建clean-day.sh文件:touch clean-day.sh
2、赋予权限:chmod +x clean-day.sh
3、编辑sh文件:
#!/bin/bash
NOHUP_DIR="/usr/local/soft/projects" # nohup.out所在目录路径
MAX_FILE_SIZE="5M" # 最大文件大小限制(如果超过该值则删除)
find $NOHUP_DIR -name "nohup.out" -size +$MAX_FILE_SIZE -exec /bin/sh -c 'echo -n > {}' \;
LOG_DIR="/data/logs/new-grid-platform" # *.gz所在目录路径
BEFORE_DAY="7" # 几天前
find $LOG_DIR -name "*.gz" -type f -mtime +$BEFORE_DAY -exec rm {} \;
4、保存
5、打开终端并输入以下命令以编辑 crontab 文件:crontab -e
6、在打开的文件中,添加以下行以指定每天在2点执行脚本:
0 2 * * * /usr/local/soft/projects/clean-day.sh;
7、保存退出