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

    不管一些面試問題,仍是實際應用,都會用到虛擬機的定時任務。現作定時清理日誌日誌作一總結。html

一、查看/etc/crontab文件。java

linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面本來就有很是多的計劃性工做,所以這個系統服務是默認啓動的。另 外, 因爲使用者本身也能夠設置計劃任務,因此, Linux 系統也提供了使用者控制計劃任務的命令 :crontab 命令。linux

cron 是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務相似,當安裝完成操做系統後,默認會安裝此服務 工具,而且會自動啓動cron進程,cron進程每分鐘會按期檢查是否有要執行的任務,若是有要執行的任務,則自動執行該任務。面試

Linux下的任務調度分爲兩類,系統任務調度和用戶任務調度。vim

系統任務調度:系統週期性所要執行的工做,好比寫緩存數據到硬盤、日誌清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件。windows

minute: 表示分鐘,能夠是從0到59之間的任何整數。緩存

hour:表示小時,能夠是從0到23之間的任何整數。tomcat

day:表示日期,能夠是從1到31之間的任何整數。工具

month:表示月份,能夠是從1到12之間的任何整數。測試

week:表示星期幾,能夠是從0到7之間的任何整數,這裏的0或7表明星期日。

command:要執行的命令,能夠是系統命令,也能夠是本身編寫的腳本文件。

 

二、刪除文件命令:

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中插入一條數據,主要用於測試是否執行該腳本。)

 

三、給腳本添加權限:

 

四、將腳本添加到定時任務。

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

相關文章
相關標籤/搜索