1. 程式人生 > >Linux做腳本定時任務(定時清理日誌)

Linux做腳本定時任務(定時清理日誌)

fin ech 任務調度 root 使用 inux 數據 cron 大括號

無論一些面試問題,還是實際應用,都會用到虛擬機的定時任務。現做定時清理日誌日誌做一總結。

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做腳本定時任務(定時清理日誌)