計畫任務的分類:
設定計畫任務的工具:at、crontab
系統服務路徑:/etc/init.d/atd
# root @ duiyi in ~ [20:24:36]
$ systemctl start atd
# root @ duiyi in ~ [20:25:11]
$ systemctl status atd
● atd.service - job spooling tools
loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
active: active (running) since mon 2019-08-19 18:18:28 cst; 2 days ago
main pid: 457 (atd)
cgroup: /system.slice/atd.service
└─457 /usr/sbin/atd -f
aug 19 18:18:28 duiyi systemd[1]: starte...
aug 19 18:18:28 duiyi systemd[1]: starti...
hint: some lines were ellipsized, use -l to show in full.
# root @ duiyi in ~ [20:25:45]
$ at 20:50
at> reboot
at> job 4 at wed aug 21 20:50:00 2019
at [option] time
-v
:顯示版本資訊:
-l
:列出指定佇列中等待執行的作業;相當於atq(若計畫被執行,則任務結束,不會再顯示在列表)
-d
:刪除指定的作業;相當於atrm
-f
:/path/from/somefile:從指定的檔案中讀取任務
-m
:當任務被完成之後,將給使用者傳送郵件,即使沒有標準輸出
time
:定義任務執行時間
hh:mm [yyyy-mm-dd]
noon, midnight, teatime(4pm)
tomorrow
now+#
示例:
at 02:00 #今天2點執行該項任務,若2點已過,則明天2點執行
at 02:00 2019-08-22 #2023年8月22號2點執行該項任務
at now +1 minutes/hours/days/weeks # 一分鐘/一小時/一天/一周後執行該項任務
at 17:20 tommorrow #明天的17:20執行該項任務
互動式輸入重定向
at –f 檔案
說明:
cronie: 主程式包,提供crond守護程序及相關輔助工具
cronie-anacron:cronie的補充程式,用於監控cronie任務執行狀況,如cronie中的任務在過去該執行的時間點未能正常執行,則anacron會隨後啟動一次此任務
crontabs:包含centos提供系統維護任務
計畫週期性執行的任務提交給crond,到指定時間會自動執行
例如:晚上9點10分執行echo命令
10 21 * * * root /bin/echo 「hello world!」
特定值:給定時間點有效取值範圍內的值
*:給定時間點上有效取值範圍內的所有值,表示「每…」
離散取值:#,#,# 如:1,3,5
連續取值:#-# 如:1-5
在指定時間範圍上,定義步長:
/#: #即為步長 即:/5 5就表示步長
如:
@reboot run once after reboot.
@yearly 0 0 1 1 *
@annually 0 0 1 1 *
@monthly 0 0 1 * *
@weekly 0 0 * * 0
@daily 0 0 * * *
@hourly 0 * * * *
示例:每3小時echo和wall命令
0 */3 * * * centos /bin/echo 「hello」;/usr/bin/wall 「welcome to magedu!」
執行計算機關機時cron不執行的任務,centos6以後的版本取消了anacron服務,由crond服務管理 對膝上型電腦、台式電腦、工作站、偶爾要關機的伺服器及其它不一直開機的系統很重要對很有用
配置檔案:/etc/anacrontab,負責執行/etc/ cron.daily /etc/cron.weekly /etc/cron.monthly中系統任務。
欄位1:如果在這些日子裡沒有執行這些任務……
欄位2:在重新引導後等待這麼多分鐘後執行它
欄位3:任務識別器,在日誌檔案中標識
欄位4:要執行的任務
由/etc/cron.hourly/0anacron執行
當執行任務時,更新/var/spool/anacron/cron.daily 檔案的時間戳
centos7使用/etc/cron.daily/tmpwatch定時清除臨時檔案
centos7使用systemd-tmpfiles-setup服務實現
crontab命令定義,每個使用者都有專用的cron任務檔案:/var/spool/cron/username
crontab命令:(支援普通使用者)
crontab [-u user] [-l | -r | -e] [-i]
-l
:列出所有任務
-e
: 編輯建立任務
編寫的任務存放在/var/spool/cron 下
-r
: 移除所有任務
-i
:同-r一同使用,以互動式模式移除指定任務
-u
user: 僅root可執行,指定使用者管理cron任務
如:crontab -l -u wang = cat wang
預設用vi開啟,如果想讓命令以帶顏色的方式展現,可以輸入export editor=vim >> /etc/profile.d/cron.sh就可以了。
控制使用者執行計畫任務:/etc/ cron.allow 、/etc/cron.deny
在at和crontab中不要使用標準輸出,因為即使沒有標準輸出,也會以郵件方式傳送給你,所以盡量不使用標準輸出,可以 &> /dev/null中 (根使用者能夠修改其它使用者的作業)即:執行結果的標準輸出和錯誤以郵件通知給相關使用者
command > /dev/null
command &> /dev/null
對於cron任務來講,%有特殊用途;如果在命令中要使用%,則需要轉義,將%放置於單引號中,則可不用轉義
Linux 11 Linux使用者組管理學習
7.小結 語法 groupmod 引數選項 新值 原組名稱 etc shadow中的記錄行與 etc passwd中的一一對應,它由pwconv命令根據 etc passwd中的資料自動產生 它的檔案格式與 etc passwd類似,由若干個字段組成,字段之間用 隔開。這些欄位是 登入名 是與 et...
windows計畫任務和linux計畫任務
有時候需要定時執行任務,如果寫乙個死迴圈在那裡等待,算是乙個方案,但總是覺得有那麼一點不好,既然作業系統為我們提供了計畫任務,為什麼不用呢?如果不用別人的東西,基本上會有三個原因 一 不知道有那個東西。二 覺得那個東西不易用。三 沒有自己的方案好。關於計畫任務完全可以排除以上三點原因,所以還是應該用...
Linux入門到放棄之八《任務計畫管理》
任務計畫管理 1.每週一下午5 50將 data目錄下的所有目錄和檔案歸檔並壓縮為 backup.tar.gz 放在 home backup目錄下。先新建 data目錄,並在目錄中隨意生成幾個檔案 建立計畫任務 命令 crontab e 輸入以下內容 檢視計畫任務 命令 crontab l 2.每天...