一次性任務計畫
at,batch
週期性任務計畫
crontab,anacron
一次性任務計畫:
at 互動式:讓使用者在
at>提示符輸入多個要執行命令:
批處理:讓任務的個命令寫入檔案由
at進行呼叫
at命令:
語法:at [option] time
time:
hh:mm [yyyy-mm-dd]
noon,midnight,teatime
tomorrow
now+#
常用選項:
-q:
佇列 -l:列出指定佇列中等待執行的作業,相當於
atq
-d:
刪除指定的作業,相當於
atrm
-c:
檢視具體作業任務
-f: /path/from/somefile
從指定檔案中讀取任務
ctrl+d 提交作業
at任務:
執行方式: 1)互動式 2)輸入重定向 3)at –f 檔案
依賴與atd服務,需要啟動才能實現at任務
at佇列存放在/var/spool/at目錄中
/etc/at.控制使用者是否能執行at任務
白名單:/etc/at.allow預設不存在,只有該檔案中的使用者才能執行at命令
黑名單:/etc/at.deny預設存在,拒絕該檔案中使用者執行at命令,而沒有在 at.deny 檔案中的使用者則可執行
如果兩個檔案都不存在,只有 root 可以執行at 命令
batch
命令:
讓系統自行選擇空閒時間去執行此處指定的任務
週期性任務計畫:
crond
crond:守護程序,執行在後台,隨時監視著程序等待執行
服務程序:阻塞,輪訓
系統cron
任務 /etc/crontab
# * * * * * user-name command to be executed
分,時,日,月,周
使用者cron
任務 crontab
命令 crontab
命令定義,每個使用者都有專用的
cron
任務檔案,
/var/spool/cron/username
日誌:/var/log/cron
時間表示法:
1.每個事件為都應該使用其可用的有效取之範圍內的值
2.某事件圍上的
*表示對應位的有效取值
3、-:連續的相鄰時間點取值
4、,:離散的時間點取值
5,/# :表示在指定時間範圍內每隔#一次
crontab
命令: -l
列出所有任務
-e 編輯任務
-r 移除所有任務
-i 同-r
一同使用,以交換式模式讓使用者有選擇的移除指定任務
-u user
僅root
可執行,代為指定使用者管理
cron
任務通過輸出重定向而拒收郵件:
&> /dev/null
> /dev/null2>&1
計畫任務配置檔案:
系統的計畫任務: /etc/crontab
/etc/cron.d/ 配置檔案
/etc/cron.hourly/ 指令碼
/etc/cron.daily/ 指令碼
/etc/cron.weekly/ 指令碼
/etc/cron.monthly/ 指令碼
cron
任務來講,
%有特殊用途,如果在
crontab的使用者命令中使用%,得轉義為\%
5 3 * * * /bin/touch~/testfile_`date +\%y-\%m-\%d`.txt
在使用單引號後,
%也可以不轉義
5 3 * * * /bin/touch~/testfile_`date +』%y-%m-%d『`.txt
練習:1、每
3分鐘執行乙個「echo 「how are you?」」
*/3 * * * * /bin/echo 「how are you?」
2、每週
2、4、6備份/etc/目錄至/backup目錄中,備份的檔名以當etc_開頭並跟上當日的日期作為檔名
0 0 ** 2,
4,6 /bin/tar jcf /back/etc-`date +'%f'`.tar.xz/etc/*
3.每天
6,9,12,15,18檢視一下系統當前掛載的所有檔案系統,並將檢視的結果追加至/tmp/mounts.txt檔案中
0 6-18/3 * * * /bin/mount >> /tmp/mounts.txt
4.每天每兩小時取當前系統記憶體空間餘量,將其儲存至
/stats/memory.txt檔案中
20 */2* * * /bin/grep "^memfree:
" /proc/meminfo>> /stats/memory.txt
如何實現秒級別的任務:
* * * * for i in;do /bin/echo 「how are you?」;sleep10;done
anacron命令:是
crontab的補充,用於檢查crontab中某任務在過去的乙個週期內是否沒有執行,
如果沒有執行,則在開機以後的某時間點讓其執行一次,無論其週期是否到達
配置檔案:/etc/anacrontab,負責執行/etc/cron.daily /etc/cron.weekly /etc/cron.monthly中系統任務。
欄位1:如果在這些日子裡沒有執行這些任務……
欄位2:在重新引導後等待這麼多分鐘後執行它
欄位3:任務識別器,在日誌檔案中標識
欄位4:要執行的任務u由/etc/cron.hourly/0anacron執行 u當執行任務時,更新/var/spool/anacron/cron.daily 檔案的時間戳
管理臨時檔案:
centos6使用/etc/cron.daily/tmpwatch定時清除臨時檔案
centos7使用systemd-tmpfiles-setup服務實現
配置檔案:
/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles/*.conf
/usr/lib/tmpfiles.d/tmp.conf
d /tmp 1777 root root10d
d /var/tmp 1777 rootroot 30d
命令: systemd-tmpfiles–clean|remove|create configfile
週期性計畫任務
週期性計畫任務 軟體 cronie crontabs crond 日誌檔案 var log cron 分 時 日 月 周 任意命令 絕對路徑 30 8 每天8 30 30 23 5 每週五23 30 任意範圍 分割多個不連續的時間點 1,3,5 指定連續的時間範圍 1 5 n 指定時間頻率,每n.2...
Linux任務計畫 週期性任務執行
at命令用於在指定時間執行命令。執行結果會通過郵件傳送給使用者 at允許使用一套相當複雜的指定時間的方法。它能夠接受在當天的hh mm 小時 分鐘 式的時間指定。假如該時間已過去,那麼就放在第二天執行 語法at 選項 引數 atq 查詢任務列表 atrm 刪除指定任務選項 f 指定包含具體指令的任務...
Linux任務計畫,週期性任務執行
概述 什麼是計畫任務呢?就像我們每個人日常生活中都會使用到的鬧鐘一樣,按時的去提醒該幹什麼事,以免忘記。同樣,我們在工作中也要每天在特定的時間內安排一些事情,這就是計畫任務。未來的某時間點執行以此任務 at,batch 週期性執行某任務 cron at命令 用法 at option time tim...