cronatab週期性任務定時計畫器

2021-08-17 18:43:02 字數 2158 閱讀 7771

配置檔案

/etc/crontab

cron的日誌檔案

cat /var/log/cron

簡介

crond是linux下用來週期性的執行某種任務或等待處理某些事件的乙個守護程序,與windows下的計畫任務類似,當安裝完成作業系統後,缺省會安裝此服務工具,並且會自動啟動crond程序,crond程序每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務《linux就該這麼學》。

任務排程的分類

linux下的任務排程分為兩類,系統任務排程和使用者任務排程。

系統任務排程:系統週期性所要執行的工作,比如寫快取資料到硬碟、日誌清理等。在/etc目錄下有乙個crontab檔案,這個就是系統任務排程的配置檔案。

系統任務排程

通過編輯配置檔案/etc/crontab,以下圖的格式標明需要執行的時間即可。一行對應乙個任務,格式如下圖。

使用者任務排程

在當前使用者下使用命令crontab -e,會以當前使用者的身份建立任務排程。與系統任務排程檔案格式不同的是不需要指名以哪個使用者的身份執行。

時間表示

指定值:指定具體的數字

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

離散取值: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秒。

週期性任務計畫

一次性任務計畫 at,batch 週期性任務計畫 crontab,anacron 一次性任務計畫 at 互動式 讓使用者在 at 提示符輸入多個要執行命令 批處理 讓任務的個命令寫入檔案由 at進行呼叫 at命令 語法 at option time time hh mm yyyy mm dd noo...

設定週期性任務

cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。由於cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動 關閉這個服務 service crond start 啟動服務 service crond stop 關閉服務 service crond res...

Linux中週期性任務

用途 按照設定的時間間隔為使用者反覆執行某一項固定的系統任務 軟體包 cronie crontabs 系統服務 crond 日誌檔案 var log crond 啟動計畫任務,並且設定開機自啟 root openstack systemctl enable crond 檢視 crontab l cr...