首頁 > 系統教程 > Linux > 主體

cronatab週期性任務定時計劃器

WBOY
發布: 2024-06-13 18:49:11
原創
154 人瀏覽過

cronatab週期性任務定時計劃器

#要執行週期性任務,要確保服務運作。服務名為crond;service crond start ; systemctl start crond;

設定檔

/etc/crontab

cron的日誌檔

cat /var/log/cron

#簡介

crond是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務工具,並且會自動啟動crond進程,crond進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。

任務排程的分類

#Linux下的任務調度分為兩類,系統任務調度和使用者任務調度。

系統任務調度:系統週期性所要執行的工作,例如寫入快取資料到硬碟、日誌清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的設定檔。

系統任務排程

#透過編輯設定檔/etc/crontab,以下圖的格式標示需要執行的時間即可。一行對應一個任務,格式如下圖。
cronatab週期性任務定時計劃器

使用者任務排程

#在目前使用者下使用指令crontab -e,會以目前使用者的身分建立任務調度。與系統任務排程檔案格式不同的是不需要指名以哪個使用者的身分運作。
cronatab週期性任務定時計劃器

時間表示

指定值:指定具體的數字

範圍值:* 表示每,每到這這個時間段執行一次任務。

離散取值:10 2,3,4 * * *;每天的2,3,4點的10分執行一次。 (總共執行了3次)

連續範圍: 10 2-10 * * *;每天的2點10分到10點10分分別執行(總共執行了8次)

步長範圍:/3 * * ;每分鐘內執行3次(即每20秒執行一次)

舉例:

10 10 /6 * *;每6天的10點10分執行一次任務

日期與星期

10 10 1-10 * 0,6 #每個月的1-10號的10點10分,或是週六日的10點10分都執行

舉例:

1 1 /6 * root echo "hello word " ;每隔6天的1點1分執行一次任務。

1 1-10/3 * * * root echo “hello word”;在每天1-10點範圍內每3小時內的第一分鐘執行一次

建立週期性任務

crontab -e

* * * * * /bin/echo "`date +\%F \%H:\%M:\%S`"

#指令要寫絕對路徑。除非標明變數

#如果在使用者下新crontab的話%需要轉義

建立時的其他設定

#建立週期性任務時,預設的編輯器為vi所以沒有語法高亮。可以透過以下辦法將預設編輯器修改為vim

#寫入/etc/porfile.d 對所有使用者生效

#寫入~/bash_profile 對目前使用者

export EDITOP=vim

建立任務的權限

允許指定使用者建立任務

cat /etc/cron.deny #在檔案內寫入使用者名,使其無法建立新任務,但已建立的仍會執行

拒絕指定使用者建立任務

cat /etc/cron.allow #預設檔不存在

允許與拒絕優先級

如果allow檔案存在,那麼deny檔案不生效。

若allow為空,拒絕所有使用者

如果allow、deny都不存在,任何使用者不能建立排程任務

實作毫秒、秒級的週期性任務

#利用usleep實現微妙層級的運行

usleep 1000000;1秒

usleep 1000;1毫秒

usleep 1;1微秒

利用迴圈體加sleep實現秒級的。在每分鐘要執行的任務中sleep20秒。
cronatab週期性任務定時計劃器

以上是cronatab週期性任務定時計劃器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:linuxprobe.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!