shell腳本編寫--清理日志文件


 

把一些服務的日志進行清理:主要是 tomcat日志   nginx的access日志  springboot的jar運行輸出日志

主體大致是這樣子

找到文件路徑,日志復制一份並以時間變量命名,清空舊文件,查找過期文件刪除

注意不要直接刪除舊文件。進程運行,刪除日志文件不會釋放磁盤資源。

logs_path=$1
date_now=$(date +%Y-%m-%d)
data_savedays=$2
cp $logs_path/catalina.out $logs_path/catalina.${date_now}.out
>$logs_path/catalina.out;
 find $logs_path -mtime  $data_savedays -name "catalina.*.out" -exec rm -rf {} \;

 

自己瑞色了一下。完整腳本如下:

#!/bin/bash
# -----------------------------------------------------------------
# -------- 創建日期:2022-01                               --------
# -------- 作者:ywjia                                     --------
# -------- 郵箱:duxingren201955@163.com                   --------
# -------- 公司:******************************            --------
# -----------------------------------------------------------------
# 打印log-詳細日志-install_all.log
    function Print_info_log(){
        echo -e "\e[1;35m INFO:$(date "+%Y-%m-%d %H:%M:%S") \e[0m $1." | tee -a /install_all.log
    }
# 打印log-錯誤日志-install_all.log
    function Print_error_log(){
        echo -e "\e[1;38m ERROR:$(date "+%Y-%m-%d %H:%M:%S") \e[0m $1." | tee -a /install_all.log
    }
# 打印log-進度日志-install_show.log
    function Print_show_log(){
        echo -e "\e[1;35m INFO:$(date "+%Y-%m-%d %H:%M:%S") \e[0m $1." | tee -a /install_show.log
    }
    #服務部署的路徑
        install_path="/usr/local" #文件保留天數
        file_savedays="2"
#清理tomcat的日志文件
function Clear_Tomcat(){
    logs_path=$1
    date_now=$(date +%Y-%m-%d)
    data_savedays=$2
    [ ! -d $logs_path ] && Print_error_log "日志文件目錄錯誤 $logs_path" && exit 2
    [ $# -ne 2 ] && Print_error_log "請完整的輸入參數,第一個參數表示日志絕對路徑,第二個參數表示日志留存的天數.示例:/data/tomcat_ldh/logs 2 "
    cp $logs_path/catalina.out $logs_path/catalina.${date_now}.out
    >$logs_path/catalina.out;
    find $logs_path -mtime  $data_savedays -name "catalina.*.out" -exec rm -rf {} \;
    find $logs_path -mtime  $data_savedays -name "localhost.*.log" -exec rm -rf {} \;
    find $logs_path -mtime  $data_savedays -name "localhost_access_log.*.txt" -exec rm -rf {} \;
    find $logs_path -mtime  $data_savedays -name "catalina.*.log" -exec rm -rf {} \;
    find $logs_path -mtime  $data_savedays -name "manager.*.log" -exec rm -rf {} \;
    find $logs_path -mtime  $data_savedays -name "host-manager.*.log" -exec rm -rf {} \;
}
#清理jar包留存的日志文件
function Clear_Jar(){
    logs_path=$1
    date_now=$(date +%Y-%m-%d)
    data_savedays=$2 clear_filename=$3
    [ ! -d $logs_path ] && Print_error_log "日志文件目錄錯誤 $logs_path" && exit 2
    [ $# -ne 3 ] && Print_error_log "請完整的輸入參數,第一個參數表示日志絕對路徑,第二個參數表示日志留存的天數,第三個參數表示文件名稱.示例:/data/logs 2 alg.log "
    cp $logs_path/$clear_filename $logs_path/${clear_filename}.${date_now}
    >$logs_path/$clear_filename;
    find $logs_path -mtime $data_savedays -name "${clear_filename}.*" -exec rm -rf {} \;
}
#清理nginx訪問日志
function Clear_Nginx(){
    logs_path=$1
    date_now=$(date +%Y-%m-%d)
    data_savedays=$2 clear_filename="access.log"
    [ ! -d $logs_path ] && Print_error_log "日志文件目錄錯誤 $logs_path" && exit 2
    [ $# -ne 2 ] && Print_error_log "請完整的輸入參數,第一個參數表示日志絕對路徑,第二個參數表示日志留存的天數.示例:/data/logs 2 "
    cp $logs_path/$clear_filename $logs_path/${clear_filename}.${date_now}
    >$logs_path/$clear_filename;
    find $logs_path -mtime $data_savedays -name "${clear_filename}.*" -exec rm -rf {} \;
}

#主函數
function main(){
    Print_show_log "開啟清理日志服務"
        [ -d ${install_path}/springboot_alg ] && Clear_Jar "${install_path}/springboot_alg" "$file_savedays" "alg.log"
        [ -d ${install_path}/springboot_edp ] && Clear_Jar "${install_path}/springboot_edp" "$file_savedays" "edp.log"
        [ -d ${install_path}/springboot_log ] && Clear_Jar "${install_path}/springboot_log" "$file_savedays" "edplog.log"
        [ -d ${install_path}/springboot_ldv ] && Clear_Jar "${install_path}/springboot_ldv" "$file_savedays" "ldv.log"
        [ -d ${install_path}/tomcat-lw/logs ] && Clear_Tomcat "${install_path}/tomcat-lw/logs" "$file_savedays"
        [ -d ${install_path}/tomcat-ldh/logs ] && Clear_Tomcat "${install_path}/tomcat-ldh/logs" "$file_savedays"
        [ -d ${install_path}/tomcat-lag/logs ] && Clear_Tomcat "${install_path}/tomcat-lag/logs" "$file_savedays"
        [ -d ${install_path}/tomcat-ldv/logs ] && Clear_Tomcat "${install_path}/tomcat-ldv/logs" "$file_savedays"
        [ -d /var/log/nginx ] && Clear_Nginx "/var/log/nginx" "2"
}

#------------start---------
main
#------------end-----------

 


免責聲明!

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



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