linux系統環境下的nginx日誌切割

Shell沒基礎,可是須要實現nginx日誌每日切割的效果,在網上找了一些照搬都沒怎麼成功,最後本身試驗出來的纔是真正能用的不是嘛
參考文章:https://www.cnblogs.com/kaitu...html

1.在某目錄下建立須要定時執行的腳本linux

# cd /etc/nginx/mylogs

2.建立腳本名爲cut-log.sh的腳本nginx

# vim cut-log.sh

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

#!/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執行它(可在命令窗口模式下觀察文件是否變色成可執行文件)bash

#  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
相關文章
相關標籤/搜索