Crontab 基本語法
t1 t2 t3 t4 t5 program
Tomcat日志隨著項目運行時長越來越多,訪問量大時很可能撐滿硬盤。下面貼一個自用的Tomcat日志清理腳本。
1 #!/bin/sh 2 3 #日志文件所在目錄 4 #path=/usr/local/tomcat/apache-tomcat-8.5.32/logs 5 path=/usr/local/tomcat/apache-tomcat-8.5.32/logs 6 7 cd ${path} 8 9 #catalina.out日志備份10 #獲取前7天的日期11 bak_date=`date %Y-%m-%d -d "7 days ago"`12 #備份catalina.out日志,后面添加日期13 #cp catalina.out catalina.out.${bak_date}.log14 #清空catalina.out日志文件15 echo > catalina.out16 17 #7天之前的日志文件刪除18 #獲取7天之前的日期19 del_date=`date %Y-%m-%d -d "7 days ago"`20 #獲取文件名中的日期字符串,然后對此時間進行相應的操作,localhost_access_log的后綴名一般為txt文件,這里包括txt文件21 for n in `ls *.log *.txt -1`;do22 m=`echo $n | awk -F. '{print $(NF-1)}'`23 m=`echo ${m:0-10}`24 if [ ! $m ]; then25 echo "IS NULL"26 continue27 fi28 if [[ $m < $del_date || $m = $del_date ]];then29 echo file $n will be deleted.30 rm -rf $n31 fi32 doneTomcat清理腳本
Nginx不同Tomcat日志,不會定時切割日志,所有的日志都會放在access.log和error.log中。在排除問題時,會很不方便。下面貼一個自用的Nginx日志切割清理腳本。
1 #!/bin/bash 2 3 #nginx的錯誤日志備份 4 cp /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error-$(date -d "yesterday" "%Y-%m-%d").log 5 cat /dev/null > /usr/local/nginx/logs/error.log 6 7 #將nginx的訪問日志備份 8 cp /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access-$(date -d "yesterday" "%Y-%m-%d").log 9 cat /dev/null > /usr/local/nginx/logs/access.log10 11 #清楚3天前的日志備份文件12 find /usr/local/nginx/logs/ -mtime 3 -type f -name \*.log | xargs rm -fNginx切割,清理日志
Crontab語法詳細介紹請參考百度--
#進入crontab編寫界面crontab -e#編寫crontab執(zhí)行語句,此處以nginx清理腳本為例#/home/crontab/clean_nginx_log.sh是我腳本位置,替換下即可1 0 * * * /bin/sh /home/crontab/clean_nginx_logs.sh >> /opt/cut_nginx_log.log 2>&1#保存退出,啟動:wqservice crond startCrontab編寫
?
來源:https://www.icode9.com/content-3-416501.html