Linux定時任務-自動清理log日誌文件,附案例詳解。

一、爲什麼要定時清理log文件?

實際工作中,我們部署到服務器的應用可能隨時在寫入日誌,有的應用一天產生的日誌就較大,但是磁盤空間有限,所以磁盤常常很快就處於用完狀態,並由此產生一些問題,比如服務器上應用可能掛掉,影響生產。

二、如何清理log文件?

估摸着時間就去看看磁盤刪刪log文件??顯然不科學,,這裏記錄一個高效的方法:編寫Linux定時任務腳本,自動清理log日誌文件。

1、創建shell腳本文件並賦予執行權限:

[root@aigoV_66 ~]# touch auto_del_sjjk_log.sh    //創建shell文件
[root@aigoV_66 ~]# chmod +x auto_del_sjjk_log.sh   //賦予文件執行權限
關於 chmod +x 命令 :

    Linux下不同的文件類型,其文件名有不同的顏色:
    藍色表示目錄,綠色表示可執行文件,紅色表示壓縮文件,淺藍色表示鏈接文件,灰色表示其它文件。
    新建的shell文件只是一個灰色的普通文件。
    執行 chmod +x 命令,此時文件變成了綠色,有了可執行權限。
    若再使用 chmod -x 命令,就去除了執行權限。

2、編輯剛創建的shell腳本文件,寫入刪除命令:

[root@aigoV_66 ~]# vi auto_del_sjjk_log.sh 

#!/bin/sh

find git_workspace/xny/數據接口/target/log/ -mtime +2 -name "*.log.*" -exec rm -rf {} \;
~                                                                                                                                       
~                                                                                                                                                                                                                                                                                                                                                                                                              
~                                                                                                                                       
-- INSERT --
關於上面命令:

    vi xx.sh :
    編輯xx.sh 腳本文件。
    進入編輯區後,按i鍵開始編輯,編輯完按Esc鍵,然後鍵入冒號:,再輸入wq,回車保存退出。

    刪除命令部分:
    find    查找命令,查找指定文件。
    git_workspace/xny/數據接口/target/log/    需要清理的文件的目錄位置。
    -mtime    標準語句寫法
    +2    數字指代天數,即刪除2天以前的      -name "*.log.*" -exec rm -rf {} \;
    -name "*.log.*"    目標文件類型
    -exec    固定寫法
    rm -rf    強制刪除包括目錄在內的文件 
        例: rm -rf abc 將 abc 子目錄及子目錄中所有檔案刪除,並且不用確認 :
    {} \;    固定寫法

3、將上面shell文件添加到Linux定時任務腳本


[root@aigoV_66 ~]# crontab -e      //進入定時任務編輯頁面(編輯保存方法同上)

0 23 * * * /root/syncsystemtime.sh
05 01 * * * sh /root/project/rm.sh
0 01 * * * /root/auto_del_sjjk_log.sh    //每日凌晨一點執行該刪除日誌的腳本文件
~                                                                                                                                       
~                                                                                                                                       
                                                                                                                                   
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
"/tmp/crontab.zvmT2t" 3L, 106C

進過上面一番操作後,服務器會在每日凌晨一點自動執行清理日誌的操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章