crontab定時刪除tomcat日誌
一:前言
前面一篇文章講了在linux環境中按日期切割tomcat生成的Catalina.out日誌。雖然日誌切割了,但是生成的日誌檔案還是會佔用磁碟空間。積累一段時間還是會造成磁碟空間不夠用的情況。
之前的做法是手動的刪除tomcat日誌,但是當磁碟空間滿了,再去清理,已經對系統的使用造成了影響。於是,可以考慮試用定時任務刪除N天前的日誌檔案,於是本文的主角crontab就成了首選。
二:crontab介紹
crontab介紹是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程序,與windows下的計劃任務類似,當安裝完成作業系統後,預設會安裝此服務工具,並且會自動啟動crontab程序,crontab程序每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。
在/etc目錄下有一個crontab檔案,這個就是系統任務排程的配置檔案。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
前四行是用來配置crond任務執行的環境變數,第一行SHELL變數指定了系統要使用哪個shell,這裡是bash,第二行PATH變數指定了系統執行命令的路徑,第三行MAILTO變數指定了crond的任務執行資訊將通過電子郵件傳送給root使用者,如果MAILTO變數的值為空,則表示不傳送任務執行資訊給使用者,第四行的HOME變數指定了在執行命令或者指令碼時使用的主目錄。第六至九行表示的含義將在下個小節詳細講述。
使用者任務排程:使用者定期要執行的工作,比如使用者資料備份、定時郵件提醒等。使用者可以使用 crontab 工具來定製自己的計劃任務。所有使用者定義的crontab 檔案都被儲存在 /var/spool/cron目錄中。其檔名與使用者名稱一致(root)。
crontab檔案的含義:
使用者所建立的crontab檔案中,每一行都代表一項任務,每行的每個欄位代表一項設定,它的格式共分為六個欄位,
前五段是時間設定段,第六段是要執行的命令段,格式如下:
minute hour day month week command
其中:
minute: 表示分鐘,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。
command:要執行的命令,可以是系統命令,也可以是自己編寫的指令碼檔案。
在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”
中槓(-):可以用整數之間的中槓表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。
三:定時刪除Catalina日誌
於是,我們想定時刪除生成的Catalina.XX-XX-XX.out日誌,只需要進行下面的操作
(1)檢視所有的crontab任務
crontab -l
(2)編輯crontab任務
crontab -e
(3)凌晨0點1分執行定時任務,刪除三天前的,格式為catalina.*.out的日誌檔案
1 0 * * * /bin/find /mnt/online/server/tomcat_manage/logs/ -mtime +3 -type f -name "catalina.*.out" -exec /bin/rm -rf {} \;
四.其他使用例項
例項1:每1分鐘執行一次command
命令:
* * * * * command
例項2:每小時的第3和第15分鐘執行
命令:
3,15 * * * * command
例項3:在上午8點到11點的第3和第15分鐘執行
命令:
3,15 8-11 * * * command
例項4:每隔兩天的上午8點到11點的第3和第15分鐘執行
命令:
3,15 8-11 /2 * command
例項5:每個星期一的上午8點到11點的第3和第15分鐘執行
命令:
3,15 8-11 * * 1 command
例項6:每晚的21:30重啟smb
命令:
30 21 * * * /etc/init.d/smb restart
例項7:每月1、10、22日的4 : 45重啟smb
命令:
45 4 1,10,22 * * /etc/init.d/smb restart
例項8:每週六、週日的1 : 10重啟smb
命令:
10 1 * * 6,0 /etc/init.d/smb restart
例項9:每天18 : 00至23 : 00之間每隔30分鐘重啟smb
命令:
0,30 18-23 * * * /etc/init.d/smb restart
例項10:每星期六的晚上11 : 00 pm重啟smb
命令:
0 23 * * 6 /etc/init.d/smb restart
例項11:每一小時重啟smb
命令:
* /1 * * /etc/init.d/smb restart
例項12:晚上11點到早上7點之間,每隔一小時重啟smb
命令:
* 23-7/1 * * * /etc/init.d/smb restart
例項13:每月的4號與每週一到週三的11點重啟smb
命令:
0 11 4 * mon-wed /etc/init.d/smb restart
例項14:一月一號的4點重啟smb
命令:
0 4 1 jan * /etc/init.d/smb restart
相關推薦
crontab定時刪除tomcat日誌
一:前言 前面一篇文章講了在linux環境中按日期切割tomcat生成的Catalina.out日誌。雖然日誌切割了,但是生成的日誌檔案還是會佔用磁碟空間。積累一段時間還是會造成磁碟空間不夠用的情況。 之前的做法是手動的刪除tomcat日誌,但是當磁碟空
CentOS7定時任務刪除Tomcat日誌資訊
1.在指定位置建立個shell指令碼 vi /usr/sbin/clear_tomcat_logs.sh 2.編寫指令碼內容 #!/bin/bash # 清理30天之前tomcat8080的log資訊("clear_tomcat_8080"是變數名) clear_tomcat_808
CentOS7定時任務刪除Tomcat日誌信息
tomcat8 sha 列表 創建 mark 刪除 nag text art 1.在指定位置創建個shell腳本 vi /usr/sbin/clear_tomcat_logs.sh 2.編寫腳本內容 #!/bin/bash # 清理30天之前tomcat8080的lo
Linux系統Oracle定時刪除歸檔日誌
使用rman命令刪除做Oracle資料庫定期刪除歸檔日誌處理 1、準備工作: 以root使用者角色登入Linux作業系統,建立儲存刪除歸檔時記錄日誌及刪除shell指令碼檔案的目錄並授權給Oracle使用者,命令如下: mkdir -p /home/del_log m
linux shell指令碼定時清理tomcat日誌檔案(初稿)
清理日誌的shell指令碼 ------------------------------------------------------------------------------------------------ #!/bin/bash tomcatnum=2 #清
linux環境下定時備份tomcat日誌
備份tomcat的log命令tomcatlog.sh #!/bin/sh cd /soft/apache-tomcat-6.0.29/logs cp catalina.out /soft/tomca
ubuntu 定時備份清理tomcat日誌,並且刪除七天之前的日誌
七天 date lin server class catalina rm -rf color mtime #!/bin/bash #logs_paths #logs_paths[0]="/usr/local/webserver/tomcat/logs" #logs_pa
日誌定時切割,以及定時刪除(2種方法)
安裝 完成 空格 sin tro rotate logrotate 編輯 通過 切割catalian日誌的方式有很多種,比如shell腳本的、cronolog或者通過配置log4j等等這些都可以實現。但今天我要介紹是使用logrotate來按日期生成日誌。 如果catal
tomcat日誌切割和定期刪除
第4章 定時刪除過期日誌 在這裡直接使用linux自帶的crontab定時任務工具,設定每天凌晨00:00執行刪除任務,刪除7天以前的日誌檔案。 crontab -e #<==直接輸入該命令,新增一個定時任務計劃 00 00 * * * /bin/
crontab定時任務指令碼不執行,日誌無執行記錄
在linux下用crontab啟動定時指令碼,放到crontab中死活沒反應,這是可能的原因: 1、看日誌,cat /var/log/cron。如果日誌中有執行記錄可能是指令碼沒有執行許可權,此時要賦予執行許可權,如 chmod +x xxx.sh 就是給xxx.s
查詢日誌報錯Spoon is not supported on this hosttype解決(crontab定時任務未執行解決)
背景:kettle換目標庫後,手動執行命令可以入庫,crontab定時任務未執行,查錯記錄: ①先看了定時任務crontab配置 結果沒問題; ②重啟了crontab定時任務 service crond restart 也沒用 ③查看了配置檔案及資源庫路徑
Linux下Tomcat日誌自動定時打包完美實現
一、場景 1、環境 CentOS 7.0,Tomcat 8.0.33 ,(jdk-1.8.0_171) 2、目的 隨著時間推移,tomcat下的日誌檔案catalina.out越來越大,當檢視日誌時效率低下。所以,為了方便日誌的查閱,將catalina.out
tomcat日誌分割定期刪除catalina.out
每天晚上11點50切割日誌檔案,同時刪除超過30天的日誌 log_path=/usr/local/tomcat/logs d=`date +%Y-%m-%d` d90=`date -d'30 day ago' +%Y-%m-%d` cd ${log_path} && cp catalina.
linux 使用crontab新增定時任務,日誌顯示已經執行但是任務沒有成功呼叫解決方法
問題描述:使用 crontab 新增計劃任務定時呼叫儲存過程,crontab日誌顯示計劃任務已經執行,但是儲存過程沒有被呼叫。原crontab內容:50 10 * * * sh /shell/demo.sh demo.sql >> /shell/demo.log
crontab定時任務打包備份檔案並刪除過期檔案
Crontab 示例,最後這裡要寫成shell指令碼定時執行 30 17 * * * cp -rf /usr/local/tomcat9-jforum/tomcat/logs/catalina.out /usr/local/tomcat9-jforum/logs Cr
logrotate + crontab 配置tomcat日誌超過特定大小分割
1. 建立logrorate檔案 /etc/logrotate.d/tomcat,其中的內容如下:(具體引數可用man logrotate查詢) /apps/usr/webserver/tomcat-6.0.35/logs/catalina.out // tomcat日誌的
linux下刪除指定crontab定時任務
1、新建兩個指令碼檔案用來進行測試 test1.sh ping 114.114.114.114 test2.sh ping 8.8.8.8 2、通過crontab -e命令編輯crontab任務,增加內容如下: */1 * * * * /dd/shell/test1.sh
Android全域性捕獲崩潰異常記錄日誌儲存至本地並定時刪除
MainActivity內的程式碼如下:package com.example.mycrashtest; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.widg
定時刪除伺服器的日誌
如何定時刪除伺服器日誌 如何刪除伺服器舊日誌 # delete_projectName_log.sh //刪除日誌的指令碼 #!/bin/bash find /opt/logs/projectName/ -mtime +7 -name "mall.
linux實現crontab定時任務計劃並刪除之前的檔案備份
Mysql定期備份是一項重要的工作,但人工操作太繁瑣,也難避免有所疏漏,使用下面的方法即可讓系統定期備份資料。利用系統crontab來定時執行備份檔案,按日期對備份結果進行儲存,達到備份的目的。1、建立備份資料夾#cd /bak#mkdir mysqldata2、編寫執行指