nginx日志分割及備份


環境:centos7 nginx1.16.1

一、分割及備份的目的

    nginx默認將日志信息寫在一個文件中,時間一久日志文件中條目越來越多,文件越來越大,不方便查看,備份的時候也不需要備份重復的信息,故需分割日志,將日志按小時,

  天,周...分割,寫到不同的日志文件中。

二、實現原理

                通過linux自定義腳本,完成日志的分割和備份,使用定時任務,實現自動備份。

三、代碼實現

  1. 在Linux上創建腳本文件runlog.sh。寫入如下代碼:    

#!/bin/bash
base_path='/usr/local/nginx/logs/' #日志文件目錄
log_name='fanshehu.access.log' #日志文件名
log_path_y=$(date -d yesterday '+%Y' )
log_path_md=$(date -d yesterday '+%m%d')
log_path_hms=$(date -d yesterday '+%H%M%S')
mkdir -p /date/nginx_logs/$log_path_y/$log_path_md #創建備份目錄
mv $base_path$log_name /date/nginx_logs/$log_path_y/$log_path_md/$log_path_hms-$log_name #移動日志
touch $base_path$log_name #生成新日志文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) #nginx重讀配置文件                                                                                                                                                                     

   2. 設置Linux定時任務:

    作用:自動執行腳本,實現日志的分割備份

    cron服務是一個定時執行的服務,可以通過crontab 命令添加或者編輯需要定時執行的任務,crond是定時服務的守護進程

               (1) 啟動服務:

      systemctl /start/stop/restart/reload/status  crond

     (2) 設置定時任務類容:

      crontab -e  #此方式的定時任務用戶是當前登錄linux用戶,加入如下代碼

      */1 12-23 * * * /home/sh/runlog.sh  #每天12-23時期間,每分鍾執行一次

      注意:腳本其它用戶要有可執行權限,目錄要有讀權限

      drwxrw-rw-   3 root root  4096 Nov 21 17:10 date  

      -rwxr-xr-x 1 root root 469 Nov 21 17:00 runlog.sh

     (2) 設置開機自啟:

      vim /etc/rc.d/rc.local或vim /etc/rc.local  #它們是一個文件,此文件中的命令在用戶登錄前便會執行。在文件中加入如下代碼:

      /bin/systemctl start crond.service

 

四、Linux定時任務

    1. linux啟動流程:

      轉自http://c.biancheng.net/view/1023.html

                (2)相關命令

        crontab -l  #查看當前用戶的定時任務列表

        crontab -e  #編輯當前用戶的定時任務

        crontab -r  #刪除當前用戶的所有定時任務

        crontab -u  #設定定時任務的用戶

        tail /var/log/cron  #查看定時任務日志

     (4)定時任務格式

*   *  *  *  *  [用戶] 命令   #用戶是cron服務的用戶,命令一般是.sh腳本,*表示每        

分鍾   小時   日    月     星期

(0-59)(0-23)(1-31)(1-12)(0-6)  

例:

0,30 18-23 * * *  18:00-23:00間每小時0分和30分鍾執行

0 23 * * 6          星期6,23:00執行

* */1 * * *         每小時執行

* 23-7/1 * * *     23:00-7:00間每小時執行

0 4 1 jan *         一月一號4:00

0 0 10-20 * *     10號~20號,每天00:00執行

注意事項:  

  1. 日志備份目錄有可寫權限

       2. 腳本其他用戶有可執行權限,755

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM