把一些服務的日志進行清理:主要是 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-----------