日志替换脚本:
#!/bin/bash
##零点执行该脚本
##Nginx日志文件所在的目录
LOGS_PATH="日志文件夹路径"
##获取昨天的yyyy-MM-dd
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
##移动文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
##向Nginx主进程发送USR1信号,USR1信号是重新打开日志文件
kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
##kill -USR1 $(cat /nginx安装目录/nginx.pid) #通知nginx重新生成新的日志
##删除7天前的日志
cd ${LOGS_PATH}
find . -mtime +7 -name "access_*" | xargs rm -f
exit 0
日志替换定时器
crontab -e 在里面输入如下内容:(每晚0点1分执行日志分割,注意中间的空格,如果该命令找不到crontab文件选用下列方式修改即可)
1 0 * * * /bin/sh /脚本路径.sh
如果上面命令找不到文件地址可使用如下 命令查找crontab 文件进行修改:
vim /etc/crontab在最后一行添加
1 0 * * * /bin/sh /脚本路径.sh
重新启动crond使设置生效
/etc/rc.d/init.d/crond restart #yum install -y vixie-cron 安装计划任务,某些系统上可能没有预装需要执行此操作进行安装
chkconfig crond on #设为开机启动
service crond start #启动
如果直接复制的话,要注意字体编码的问题,很多windows上的脚本上传到linux就出错,还是因为编码问题