Linux下 Tomcat日志按天压缩打包,压缩包保留7天
新加 timePackLogs.sh
#!/bin/bash
#author:
#date:
#department:
echo `date '+%Y-%m-%d %H:%M:%S'`" 打包程序执行开始!";
file_path=/home/web/tomcat/tomcat-pay/logs
eight_days_ago=`date -d '8 days ago' +%Y-%m-%d`
yesterday=`date -d 'yesterday' +%Y-%m-%d`
echo $file_path,$eight_days_ago,$yesterday
if [ -d $file_path ]
then
#压缩前一天日志
cd $file_path &&cp -rf catalina.out ${yesterday}_catalina.out\
&& tar -czf ${yesterday}_catalina.out.tar.gz ${yesterday}_catalina.out\
# 删除8天前的日志
&& rm -rf catalina.out.$eight_days_ago.tar.gz \
#删除新生成的out
&& rm -rf ${yesterday}_catalina.out\
#清空catalina.out:
&&cat /dev/null > catalina.out
else
echo "tomcat logs directory is not exist"
fi
echo '备份结束'
添加定时任务
定时任务 crontab -e
# 每天凌晨1点打包前一天日志,并清理一周前日志压缩包
0 1 * * * /bin/sh /home/web/***/timePackLogs.sh
crontab -e 与 直接编辑 /etc/crontab 的区别
使用命令 crontab -e 然后直接编辑定时脚本。
这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本。
使用命令 vi /etc/crontab 编辑定时脚本。
(系统级的)做系统级配置我们会直接配置 /etc/crontab
(用户级的)一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。
获取当前程序进程号
ps -ef|grep **** | grep -v grep | tr -s ' ' | cut -d ' ' -f 2