1、分割指令碼:cut_nginx_logs.sh
#!/bin/bash#cut_nginx_logs.sh
#author xingxiudong
#set the path to nginx log files
log_files_path="/var/log/nginx"
#set nginx log files you want to cut
project_name=mmt
log_files_name=nginx_access_mmt
log_files_dir=$/bck/$/$(date -d "yesterday" +"%y")/$(date -d "yesterday" +"%m")
set the path to nginx.
nginx_sbin="/etc/init.d/nginx"
############################################
#please do not modify the following script #
############################################
mkdir -p $log_files_dir
#log_files_num=$
#cut nginx log files
mv $/$.log $/$_$(date -d "yesterday" +"%y%m%d")_$(date +"%y%m%d%h%m%s").log
kill -usr1 $(cat /var/run/nginx.pid)
$nginx_sbin force-reload
2、準備定時執行檔案:cron_cur_nginx_logs
1 0 * * * /home/mmt/cut_nginx_logs.sh
3、修改分割指令碼檔案執行許可權
sudo chmod 777 /home/mmt/cut_nginx_logs.sh
4、加入cron守護程序
sudo crontab /home/mmt/cron_cur_nginx_logs
一日,領導要在windows機器上出每日nginx訪問日誌,無奈寫了乙個:
taskkill /f /im nginx.exeset "cmd_zszy=move f:\nginx-access_log\zszy\logs\zszy.log f:\nginx-access_log\zszy\logs\zszy.%date:~0,4%-%date:~5,2%-%date:~8,2%.log
call %cmd_zszy%"
start nginx
儲存後把這個批處理檔案放到nginx根目錄下,在windows下新增乙個任務計畫,每天執行一次即可.該批處理一共做了三件事,先殺掉系統中正在執行的nginx程序,然後備份並根據時間重新命名日誌檔案,最後再啟動nginx服務。
經過測試,在windows下面必須在nginx服務停止的情況下才能備份日誌,這個有點小小的遺憾,不過一般情況下這個備份過程會在1到2秒內完成,把這個批處理放到每天凌晨執行,基本不影響nginx提供服務。
nginx日誌分割指令碼
此文件只針對linux分割nginx日誌 nginx日誌不自動帶日誌分割功能,需要自己寫指令碼分割日誌,並加入到每日任務中,定期分割 儲存 刪除日誌 此指令碼包括,日誌分割 儲存 刪除 重建日誌檔案 bin bash date y m d h m s year date y month date m...
Nginx 日誌自動分割
nginx 的日誌都是寫在乙個檔案當中的,不會自動地進行切割,如果訪問量很大的話,將導致日誌檔案容量非常大,不便於管理和造成nginx 日誌寫入效率低下等問題。所以,往往需要要對access log error log日誌進行切割。切割日誌一般利用usr1訊號讓nginx產生新的日誌。例項 123 ...
nginx日誌分割小指令碼
nginx的日誌一直是寫在乙個檔案上面,執行久了之後檔案會非常大,因此我們有必要對nginx的日誌進行分割 12 3456 78910 11 bin bash access log data nginx www.log error log data nginx error.log yesterday...