Linux做腳本定時任務(定時清理日誌)
無論一些面試問題,還是實際應用,都會用到虛擬機的定時任務。現做定時清理日誌日誌做一總結。
1、查看/etc/crontab文件。
linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。另 外, 由於使用者自己也可以設置計劃任務,所以, Linux 系統也提供了使用者控制計劃任務的命令 :crontab 命令。
cron 是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務 工具,並且會自動啟動cron進程,cron進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。
Linux下的任務調度分為兩類,系統任務調度和用戶任務調度。
系統任務調度:系統周期性所要執行的工作,比如寫緩存數據到硬盤、日誌清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件。
minute: 表示分鐘,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這裏的0或7代表星期日。
command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。
2、刪除文件命令:
find 對應目錄 -mtime +天數 -name "文件名" -exec rm -rf {} \;
實例命令:
find /usr/local/tomcat/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
說明:
將/opt/soft/log/目錄下所有30天前帶".log"的文件刪除。具體參數說明如下:
find:linux的查找命令,用戶查找指定條件的文件;
/opt/soft/log/:想要進行清理的任意目錄;
-mtime:標準語句寫法;
+30:查找30天前的文件,這裏用數字代表天數;
"*.log":希望查找的數據類型,"*.jpg"表示查找擴展名為jpg的所有文件,"*"表示查找所有文件,這個可以靈活運用,舉一反三;
-exec:固定寫法;
rm -rf:強制刪除文件,包括目錄;
{} \; :固定寫法,一對大括號+空格+\+;
(註意:可添加:0 */1 * * * echo "Have a break now." >> /usr/local/myScript/logs/test.txt 每一個小時往test.txt中插入一條數據,主要用於測試是否執行該腳本。)
3、給腳本添加權限:
4、將腳本添加到定時任務。
vim /var/spool/cron/root
10 1 * * * /usr/local/myScript/cleanlog.sh 每天淩晨1點10分執行
(還可以使用命令直接進入編輯:crontab -e)
查看定時任務:crontab -l
總結:虛擬機的定時任務是作為測試人員必須掌握的內容。
參考:https://blog.csdn.net/qq_39291929/article/details/79054452
https://www.cnblogs.com/think-in-java/p/5712197.html
Linux做腳本定時任務(定時清理日誌)