linux系统环境下的nginx日志切割

2018-01-12 11:14:19来源:segmentfault作者:bozomo人点击

分享

Shell没基础,但是需要实现nginx日志每日切割的效果,在网上找了一些照搬都没怎么成功,最后自己试验出来的才是真正能用的不是嘛
参考文章:https://www.cnblogs.com/kaitu...


1.在某目录下创建需要定时执行的脚本


# cd /etc/nginx/mylogs

2.创建脚本名为cut-log.sh的脚本


# vim cut-log.sh

3.保存下面的脚本到文件中()


#!/bin/bash
## 零点执行该脚本## Nginx 日志文件所在的目录
LOGS_PATH=/home/abc/logs##nginx.pid所在目录
pid_path="/var/run/nginx.pid"## 获取昨天的 yyyy-MM-dd
YESTERDAY=$(date -d last-day +%Y%m%d)## 执行mv操作
mv ${LOGS_PATH}/abc.access.log ${LOGS_PATH}/abc.access.log_${YESTERDAY}.log## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
#kill -USR1 $(cat /var/run/nginx.pid)
kill -USR1 `cat ${pid_path}`

4.保存退出,允许Shell执行它(可在命令窗口模式下观察文件是否变色成可执行文件)


#chmod 755 cut-log.sh

5.使用 crontab -e 新增一个定时任务,在其中增加执行这个脚本:


# 0 0 * * * /etc/nginx/mylogs/cut-log.sh

到这基本上配置完毕了,linux系统的cron守护线程会在对应的时间执行任务。保存成功退出,会提示crontab: installing new crontab
使用crontab命令有可能报Centos crontab command not found的错误,这时需要安装相应的软件包:


# yum install vixie-cron

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台