我們時常會有一些定期定時的任務,如週期性的清理一下/tmp
,週期性的去備份一次資料庫,週期性的分析日誌等等。而且有時候因為某些因素的限制,執行該任務的時間會很尷尬。crontab
則用於設定週期性被執行的指令。
啟動rsyslog
,以便我們可以通過日誌中的資訊來了解我們的任務是否真正的被執行了(本地中 ubuntu 會預設自行啟動不需要手動啟動)
啟動crontab,並在後台由 upstart 來管理(本地中 ubuntu 會預設自行啟動不需要手動啟動)
sudo cron -f &
crontab -e //進入檔案新增任務
第一次執行要先選擇編輯器,選擇2即可vim編輯器。在檔案中以#開頭的都是注釋,將下面命令新增到檔案中:
*/1 * * * * touch /home/shiyanlou/$(date +\%y\%m\%d\%h\%m\%s)
crontab 的格式:
該任務是每分鐘我們會在/home/shiyanlou
目錄下建立乙個以當前的年月日時分秒為名字的空白檔案。
注意:「 % 」 在 crontab 檔案中,有結束命令列、換行、重定向的作用,前面加 」 \ 」 符號轉義,否則,「 % 」 符號將執行其結束命令列或者換行的作用,並且其後的內容會被做為標準輸入傳送給前面的命令。
新增成功後我們會得到最後一排installing new crontab
的乙個提示
我們也可以通過這樣乙個指令來檢視我們新增了哪些任務
雖然我們新增了任務,但是如果cron
的守護程序並沒有啟動,它根本都不會監測到有任務,當然也就不會幫我們執行,有兩種方法檢視從容程序有沒有執行(一般該程序都會在後台默默執行,如果沒執行可以執行上面準備工作的第二步命令)
ps aux | grep cron
或者pgrep cron
我們通過這樣乙個命令可以檢視到執行任務命令之後在日誌中的資訊反饋
sudo tail -f /var/log/syslog
從圖中我們可以看到分別在13點28、29、30分的01秒為我們在 shiyanlou 使用者的家目錄下建立了檔案:
當我們並不需要這個任務的時候我們可以使用這麼乙個命令去刪除任務
crontab -r
通過圖中我們可以看出我們刪除之後再檢視任務列表,系統已經顯示該使用者並沒有任務哦
每個使用者使用crontab -e
新增計畫任務,都會在/var/spool/cron/crontabs
中新增乙個該使用者自己的任務文件,這樣目的是為了隔離。
如果是系統級別的定時任務,只需要以 sudo 許可權編輯/etc/crontab
檔案就可以。cron 服務監測時間最小單位是分鐘,所以 cron 會每分鐘去讀取一次/etc/crontab
與/var/spool/cron/crontabs
裡面的內容。
在/etc
目錄下,cron
相關的目錄有下面幾個:
每個目錄的作用:
/etc/cron.daily
,目錄下的指令碼會每天執行一次,在每天的6點25分時執行;
/etc/cron.hourly
,目錄下的指令碼會每個小時執行一次,在每小時的17分鐘時執行;
/etc/cron.monthly
,目錄下的指令碼會每月執行一次,在每月1號的6點52分時執行;
/etc/cron.weekly
,目錄下的指令碼會每週執行一次,在每週第七天的6點47分時執行;
系統預設執行時間可以根據需求進行修改。crontab 是 linux 系統中新增計畫任務,定時執行一些必要的指令碼所必不可少的工具。
鳥哥私房菜:
某管理員需要每天備份論壇資料(這裡我們用alternatives.log
日誌替代),備份當天的日誌並刪除之前的日誌。而且備份之後檔名是 年-月-日 的格式。alternatives.log
在/var/log/
下面。
目標:為 shiyanlou 使用者新增計畫任務
每天凌晨 3 點的時候定時備份alternatives.log
到/home/shiyanlou/tmp/
目錄
命名格式為 年-月-日,比如今天是2023年4月1日,那麼檔名為 2017-04-01
答案:
sudo cron -f &
crontab -e
新增下面**:
0 3 * * * sudo rm /home/shiyanlou/tmp/*
0 3 * * * sudo cp /var/log/alternatives.log /home/shiyanlou/tmp/$(date +\%y-\%m-\%d)
Linux linux定時任務crontab
crontab命令的功能是在一定的時間間隔排程一些命令的執行。它的配置檔案是 etc crontab。vim etc crontab etc crontab中每行指定乙個定時任務,其描述格式如下 minute hour daymonth dayofweek commandminute 從0到59的整...
Linux任務計畫
at任務 單次定時執行任務 at命令 at option time u常用選項 v 顯示版本資訊 l 列出指定佇列中等待執行的作業 相當於 atq d 刪除指定的作業 相當於 atrm c 檢視具體作業任務 f path from somefile 從指定的檔案中讀取任務 m 當任務被完成之後,將給...
LINUX 任務計畫
任務計畫就是任務迴圈計畫,不用刪除就可以了 crontab 如果有很多執行命令,將這些執行命令放到乙個指令碼裡面按照順序執行 1.crontab 任務執行 19 10 sbin init 6 每天10點19分重啟 分時日月周 2.crontab r 全部刪除任務計畫 3.crontab l 檢視執行...