进入nginx logs目录
方式一:
- 复制日志文件
mv access.log bak.log #复制access.log
- 产生新的日志文件
../sbin/nginx -s reopen #执行后会创建一个新的access.log
方式二使用定时任务切割日志
- 在logs目录下创建 ratate.sh文件 写入以下内容
vim ratate.sh#创建脚本文件,写入脚本
# 目标日志目录
CUR_LOGS_PATH=/usr/local/nginx/logs
# 历史日志目录(自己创建的目录)
LOGS_PATH=/usr/local/nginx/logs/history
#获取时间
YESTERDAY=$(date -d "yesterday" %Y-%m-%d)
mv ${CUR_LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${CUR_LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
##向Nginx主进程发送USR1信号。USR1信号是重新打开日志文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
- 给ratate.sh添加执行权限
#给文件设置可执行权限
chmod 751 ratate.sh
- 检测脚本是否正常
./ratate.sh#检测脚本是否正常
- 配置定时任务:
修改系统用户配置文件
root用户在/var/spool/cron/root 目录下
普通用户在:/var/spool/cron/用户名 目录下
vim /var/spool/cron/root #配置定时任务
#写入: 15 2 * * * /usr/local/nginx/logs/ratate.sh
# nginx日志切割定时任务
- 查看定时任务:
crontab -l#查看定时任务
附:crontab表达式
字段名 | 允许的值 | 允许的特殊字符串 |
---|---|---|
分 | 0-59 | , - * / |
小时 | 0-23 | , - * / |
日 | 1-31 | , - * / |
月 | 1-12 or JAN-DEC | , - * ? / L W C |
周 | 1-7 or SUN-SAT | , - * / |
年(可选) | empty, 1970-2099 | , - * ? / L W C |
表达式意义
‘’ * “:代表整个时间段
“?”字符:表示不确定的值
“,”字符:指定数个值
“-”字符:指定一个值的范围
“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
“W”字符:指定离给定日期最近的工作日(周一到周五)
“#”字符:表示该月第几个周X。6#3表示该月第3个周五
" 0 1 * * *” 每天中午1点触发
“10 1 ? * *” 每天上午1:10触发
“15 10 * * ? 2019” 2019年的每天上午10:15触发
“0/5 13,18 * * ?” 在每天下午1点到2:55期间和下午6点到6:55期间的每5分钟触发
详情: https://www.cnblogs.com/God-froest/archive/2012/05/17/crontab_.html