1.安装定时任务插件
yum install crontabs
2.创建.sh文件,记录这个文件名,在定时任务需要用到
#!/bin/bash
#定义存放nginx日志文件的目录
LOG_PATH="/var/log/nginx/"
#定义时间格式
RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)
#nginx.pid内存放了nginx进程的pid,用于最后一句
PID=/var/run/nginx/nginx.pid
#下面两句:文件名字修改
mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log
mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log
#向Nginx主进程发送信号,用于重新打开日志文件,平滑启动nginx
kill -USR1 `cat $PID`
3.编辑定时任务
两种方式,
第一种进入/var/spool/cron目录,执行 vim root命令直接添加定时任务,如下
第二种直接执行命令 corntab -e 进入root文件的编辑状态
可能会出现权限的问题,即使是root账号下也无法修改的问题,解决办法在下面。
4.表达式格式 :cron在线表达式生成
corn表达式 + sh + 文件地址
*/30 * * * * sh /etc/newinit.sh >/dev/null 2>&1
0 0 0 * * ? * sh /usr/local/nginx/sbin/cut_log.sh
5.如何解决权限问题
执行如下命令,查看你的这个目录下有哪些特殊的权限
[root@10-13-114-168 sbin/]$ lsattr /var/spool/cron/
----ia-------------- /var/spool/cron/root
看到如上,有 ia 两个特殊权限,再执行如下命令取消特殊权限
chattr -ai /var/spool/cron
之后便可以正常的修改定时任务了,如果还出错,检查一下自己的表达式是否有误
6.重启
执行如下命令
service crond restart
到此完成整个流程