1、crontab
crontab檔用於在指定日期和時間週期性地執行作業
crontab 作業存放在/var/spool/cron/crontabs/$USER
cron根據crontab檔項運行命令。如果用戶不指定將cron作業的輸出重定向到標準輸出或標準錯誤。
cron將使用電子郵件向使用者報告其輸出或錯誤
要使用cron,用戶必須建立crontab檔
cron進程將crontab檔駐留在記憶體中,所以用vi直接修改硬碟上的cron檔是沒有效果的
必須使用crontab命令操作,它會告訴cron進程crontab檔已修改
語法:
minute hour day month dayofweek command
分鐘 小時 天數 月數 (0~6,0表示星期日)
示例1:
50 23 * * 6 /home/oracle/rman.sh
表示每月每天的23點50分,只要這一天星期六,就執行腳本
50:表示50分鐘
23:23點
*:表示所有天
*:表示所有月
6:表示星期六
在AIX中,任務計畫的使用授權控制在兩個檔中:
/var/adm/cron/cron.deny :定義了不允許使用cron的用戶
/var/adm/cron/cron.allow :定義了允許使用c'ron的用戶
如果兩個檔都存在,那麼只有cron.allow檔有效,如果兩個檔都不存在,那麼只有root才可以用cron
示例2:
0 0 * * 1-5 backup –0 –u –f /dev/rmt0
週一至週五的,每天24:00整執行backup –0 –u –f /dev/rmt0命令
示例3:
0,15,30,45 8-17 * * 1-5 /tmp/script1
週一至週五的,每天早上8點至17點,每個15分鐘執行/tmp/script1命令
2、常用指令:
查看當前用戶的定時任務。
#crontab -l
刪除cron表
# crontab –r
編輯cron表
方法一:
# crontab –e
方法二:
# crontab –l>/tmp/crontmp
# vi /tmp/crontmp
# crontab /tmp/crontmp
#crontab -l
3、at定時任務
at命令用於在指定時間執行一次性作業,它從標準輸入讀取要執行的命令
at作業存放在/var/spool/cron/atjobs/$USER中
控制用戶使用crontab的兩個檔:
/var/adm/cron/at.deny 不允許使用at的用戶
/var/adm/cron/at.allow 允許使用at的用戶
如果兩個檔都存在,那麼只有at.allow檔有效,如果兩個檔都不存在,那麼只有root才可以用at
示例:
2分鐘後發個大字體的hello的字元給/dev/tty3終端:
# at now +2 mins
banner hello > /dev/tty3
< ctrl + d >
job user.time.a will be run at date
列出at作業清單
# at –l [user]
# atq [user]
取消at作業
# at -r job
# atrm {job | user}
只有 root才可以列出和取消所有的作業,包括其他人的作業;其他人只能取消他本人的作業
4、batch作業管理
示例:
CPU空閒時發個hello的banner信號給/dev/tty3終端:
# batch
banner hello > /dev/tty3
< ctrl + d >
batch命令用於在CPU空閒時執行一次性作業,即在處理負載足夠低時提交作業
5、 skulker 命令
skulker 用來刪除過時的檔,清理檔案系統;通過修改skulker腳本調整要清除舊檔
比如刪除以下檔:
舊的qdir 文件
/var/tmp中的文件
一天以前的*.bak、a.out、core等文件
skulker通常寫入root的crontab檔中,由cron 守候進程每日執行一次;新安裝好一個系統後,想要啟動skulker,只好修改root的crontab檔
skulker是個腳本,不是一個服務,可以直接執行skulker命令,但不能用startsrc –s skulker啟動
、skulker 命令skulker 命令 skulk
[reference]: https://www.cnblogs.com/liuxing0007/p/11375847.html