Nginx由於輕巧和高效的設計風格,去掉了一些額外的功能,所以它不像apache那樣有自動切割日志。
建立一個腳本文件,並保證這個文件有可執行的權限:
1、建立一個文件/root/log.nginx.sh(這里只是作為演示,實際上這個腳本文件你可以隨意的放在哪個目錄和給它取一個你喜歡的名字),在文件里面粘貼如下內容:
#!/bin/bash declare logs_path="/var/log/nginx"; declare need_delete_path=${logs_path}/$(date -d "7 days ago" "+%Y_%m_%d"); declare yestoday_log_path=${logs_path}/$(date -d "yesterday" "+%Y_%m_%d"); rm -rf ${need_delete_path} rm -rf ${yestoday_log_path} mv ${logs_path}/today ${yestoday_log_path} mkdir -p ${logs_path}/today /etc/init.d/nginx reload
2、賦予這個文件可執行權限:
chmod 777 /root/log.nginx.sh
3、將這個腳本加入到crontab中去,每天0點0分執行一次:
//打開定時任務
crontab -e
//追加定時任務
0 0 * * * /root/log.nginx.sh
//查看定時任務,就會看到你添加的內容了
crontab -l
上面這個腳本的作用就是每天凌晨0點0分的時候創建一個以昨天的日期命名的文件夾,然后把/var/log/nginx/today/這個文件夾里面的日志文件全部移動到新建的文件夾里面去。today這個文件夾每天凌晨都會被清空一次,這樣就實現了nginx按天切割日志的功能了。
腳本除了清空today文件夾外還會刪除7天以前的日志文件,只保留最近7天的日志。