1 脚本 vim cut_www.tangboxiang.com.log.sh
#!/bin/bash
LOGDIR=/www/wwwlogs
LOGNAME=www.tangboxiang.com
DATETIME=$(date -d "yesterday" +%Y-%m-%d)
mv ${LOGDIR}/${LOGNAME}.log ${LOGDIR}/${LOGNAME}_${DATETIME}.log
kill -USR1 `ps -ef|grep nginx |awk '/master/ {print $2}'`
#删除2天前的日志
find ${LOGDIR}/ -mtime +2 -name "*.log" | xargs rm -rf
exit 0
2 加入到定时任务,由于时间设置yesterday,定时任务里面为0点以后。
crontab -e
0 0 * * * /bin/sh /www/wwwlogs/cut_www.tangboxiang.com.log.sh > /dev/null 2>&1
3 重启crontab
坑:修改时区后,必须要重启crontab(重启系统也没有用),否则crontab 执行时间和系统时间不一致,导致切割的时间和执行的时间不对。
还有一种情况的 时区分两个 一个是 timezone 还有个是localtime,按照下面命令即可解决
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
service crond restart
systemctl restart crond
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态
查看日志:
查看crontab 日志输出
tail -f /var/log/cron
本文介绍了一个用于日志轮切的bash脚本,该脚本能够将前一天的日志重命名并归档,同时清理超过两天的日志文件。此外,详细解释了如何将此脚本设置为Crontab定时任务,在每天0点后自动执行。特别注意时区设置对Crontab执行时间的影响及解决方案。
581

被折叠的 条评论
为什么被折叠?



