本文基於centos-7-x86_64-minimal-2003.iso映象版本:
自動啟動任務的分類:單一任務和迴圈任務。對應的命令是at和crontab。
單一任務:at命令
問題:什麼是atd?
答:atd是乙個服務,atd名字拆分為at(命令) +daemon(守護程序)
問題:什麼是daemon(守護程序)
答:就好比atd是諸葛亮,at命令是阿斗。
安裝atd服務: yum install atd
檢視atd服務是否啟動:systemctl status atd 輸出結果如下:
● atd.service - job spooling tools
loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
active: inactive (dead)
// enabled代表開機啟動 inactive 代表沒有執行。
啟動atd服務:systemctl start atd
重啟atd服務:systemctl restart atd
關閉atd服務:systemctl stop atd
atd設定開機啟動:systemctl enable atd
使用者使用許可權
vim /etc/at.deny # 裡面寫的是使用者黑明單,說明這些使用者不能使用at命令
問題:如何設定單一任務:(因為目前我的工作中只用到了crontab,所以暫時不學語法。)
迴圈任務(crontab命令,守護服務crond):
crontab的檢視服務那些命令同atd:比如啟動crond服務 systemctl crond start。
使用者使用許可權
vim /etc/cron.deny # 裡面寫的是使用者黑明單,說明這些使用者不能使用crontab命令
crontab命令語法(man crontab檢視):
crontab [-u user] file
crontab [-u user] [-l | -r | -e] [-i] [-s]
crontab -n [ hostname ]
crontab -c
// -u 代表使用者(user) 如: crontab -u sxd
// -l 代表列表(list) 如 crontab -u sxd -l :代表終端列出為sxd使用者的任務
// -r 代表移除(remove) 如contab -u sxd -r:代表終端移除sxd使用者的任務
// 上面的-u sxd 我是在root許可權上操作別人的東西,如果自己操作 可以去掉 -u sxd
// -n /-c好像跟集群有關的,自己有什麼需求自行去了解。
crontab迴圈任務語法:
時間設定+命令:
而時間有分鐘(0-59)、小時(0-23)、天(1-31)、月(1-12)、周(0-7)。
比如:58,59 * * * * echo "hello.world" > /home/sxd/test.txt
* * * * * echo "hello.world" > /home/sxd/test.txt
// 所以第乙個*為分鐘設定值,第二*為小時設定值
// * 代表:任何範圍內的值,比如第一*代表分鐘範圍內0-59的任何值。
// ,代表:多個時間點 比如3,6 **** 代表3分鐘、6分鐘都執行任務,執行了2次。
// - 代表:時間段 比如3-6 **** 代表分鐘在3分鐘到6分鐘之內執行
// /n 代表:每隔,不如 */10**** 代表每隔10分鐘執行
ps:重點:編輯任務時要有空格。
問題:什麼是crontab、什麼是cron、什麼是crond:
答:可以認為cron就是crond,是crontab命令的守護服務。
crontab命令會涉及的檔案:
/etc/crontab:與系統有關的迴圈任務編寫檔案
/etc/cron.d/*:與系統有關的迴圈任務編寫檔案
/var/spool/cron/*: 這裡的星號代表使用者名稱,裡面有使用者crontab -e 編輯的任務。
/var/log/cron: crontab執行後記錄的日誌檔案,如果任務不生效,可以看這裡。
/etc/cron-weekly等等:系統每週執行的任務
anacron命令:
保證特殊情況cron未被執行的迴圈任務 能被執行,有需求的自行去研究。
解釋下名詞:
/var: 目錄主要針對常態性變動的檔案,包括快取(cache)、登入檔(log file)以及某些軟體運作所產生的檔案
/var/spool(卷):,也就是佇列資料
/etc(editable text configuration):系統配置檔案目錄。
linux定時任務cron
一 cron格式 其格式如下 minute hour day month dayofweek command 分鐘 小時 天 月 天每星期 命令 比如 15 ls 表示每15分鐘執行一次ls 即每個小時的第0 15 30 45 60分鐘執行ls命令 25 8 11 ls 每天8 11點的第25分鐘執...
linux命令 任務計畫 cron
任務計畫,有時間規律的執行某些事情。檢視任務計畫 crontab l 指定使用者 crontab l u 使用者名稱 該使用者沒有任務計畫。自定義任務計畫 進入乙個操作和vim類似的介面 用空格分開 這段任務計畫的意思是 每隔一分鐘就把 hou hou 寫入到 1.txt 一次。前面5段分別表示 分...
Linux計畫任務 cron服務
計畫任務,是系統自動完成工作的一種實現方式,通過shell和linux unix下的crontab 計畫任務控制 的方式實現。cron是計畫任務的稱呼,crond是後台程序,而crontab則是定製好的計畫任務表。cron 這個名字來自 chronos 乙個古希臘語,時間 的意思。linux的自動執...