在我日常開發伺服器維護的時候經常發現我們的伺服器磁碟被站滿了。
經過一頓排查發現多數發現是我們的日誌沒有處理好搞的問題。
這時候如果我們可以將nginx日誌切割然後定時刪除一下很老的日誌就非常方便了。
說明本環境是centos6.5如果是linux 其他版本命令可能會有差異。
使用linux的crontab定時計畫去操作我們的日誌就行
這個檔案最好放到乙個公共的目錄,都用來儲存我們的腳步檔案
[root@localhost corn]
# vim logclean.sh
輸入指令碼內容如下,可以根據自己情況改動
#輸入指令碼
#!/bin/bash
#設定日誌檔案存放目錄
logs_path=
"/home/nginx/log/"
#設定pid檔案
pid_path=
"/usr/local/nginx/logs/nginx.pid"
#設定nginx日誌儲存的天數
log_day=7
#重新命名日誌檔案
mv$news.common.log $news.common_$(
date -d "yesterday" +"%y%m%d"
).log
mv$news.i21days.cn.log $news.i21days.cn_$(
date -d "yesterday" +"%y%m%d"
).log
mv$access.log $access_$(
date -d "yesterday" +"%y%m%d"
).log
mv$error.log $error_$(
date -d "yesterday" +"%y%m%d"
).log
mv$kaka.yueliaoba.net.log $kaka.yueliaoba.net_$(
date -d "yesterday" +"%y%m%d"
).log
#向nginx主程序發訊號重新開啟日誌
kill -usr1 `
cat $
`#刪除當前目錄下七天前的日誌
find
$ -name "news.common_*" -type f -mtime +$log_day -exec rm -rf \;
find
$ -name "news.i21days.cn_*" -type f -mtime +$log_day -exec rm -rf \;
find
$ -name "access_*" -type f -mtime +$log_day -exec rm -rf \;
find
$ -name "error_*" -type f -mtime +$log_day -exec rm -rf \;
find
$ -name "kaka.yueliaoba.net_*" -type f -mtime +$log_day -exec rm -rf \;
儲存退出,然後修改這個指令碼的許可權讓他可以執行
chmod 777 logclean.sh
#進入 vi /etc/crontab 檔案 增加計畫任務
# 這裡路徑一定要寫對,還有定時執行的時間
0 0 * * * root /usr/local/nginx/logclean/logclean.sh >> /home/cron.log>
&1#然後重新啟動cron 參考一下命令
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
centos 日誌切割 CentOS下的日誌切割
在linux下,日誌會不停的增長,為了防止日誌檔案過大,導致我們無法在日誌中快速找到想要的資訊,我們會定時對日誌檔案進行切割。在這裡我將使用logrotate切割日誌。1 logrotate的配置檔案 logrotate配置檔案主要在兩個地方 etc logrotate.conf以及 etc log...
centos 日誌切割 CentOS下的日誌切割
在linux下,日誌會不停的增長,為了防止日誌檔案過大,導致我們無法在日誌中快速找到想要的資訊,我們會定時對日誌檔案進行切割。在這裡我將使用logrotate切割日誌。1 logrotate的配置檔案 logrotate配置檔案主要在兩個地方 etc logrotate.conf以及 etc log...
centos7 nginx 日誌清理
nginx 日誌檔案需要手動清理分割,因此寫個指令碼實現自動化 建立指令碼檔案clear log.shcd usr local nginx sbin vi clear log.sh bin bash 先複製原來的錯誤日誌檔案,請根據自己實際的日誌路徑填寫 cp usr local nginx log...