linux环境java项目如果不重新发布的话,日志会一直累加(前提是发包的时候创建日志文件是累加的“>>”是累加,“>”不累加),另外一种情况是项目一直没有迭代和升级的话也是一直累加造成日志文件过大占用磁盘空间。
以下为linux环境运用crontab定时任务清理日志:
1.先说几个crontab的命令:
①.systemctl status crond.service 查看定时任务是否运行中
②./var/spool/mail/root 查看定时任务执行日志
③.crontab -e 修改文件(配置定时任务)
2.创建执行任务的.sh文件,我这里命名为cleanLog.sh,内容如下:
#!/bin/sh
#可填写多个路径,双引号内为项目路径,多个用“,”隔开
workdir=("" "" )
for wdir in ${workdir[@]}; do
echo -e "filepath is ${wdir}"
# .log 文件和包含 log 标记的 .txt文件,以及 catalina.out 文件
find $wdir -regex "^.*\(.file\)$" -type f -print -exec truncate -s 0 {} \;//我的日志文件是.file文件。
if [ $? -eq 0 ]; then
echo -e `date`" truncate logs successfully! \n"
else
echo -e `date`" truncate logs failed! \n"
fi
done
3.使用crontab -e命令修改定时任务,添加命令。
59 23 * * * /usr/local/src/task/cleanLog.sh
以上的意思是每天23.59时运行定时任务清理日志文件。后面跟执行任务的.sh文件的地址。:wq保存
crontab命令详解网上一大堆。自行查询