Linux中的定時和延時任務
如何讓系統定時的完成任務,如何讓系統再過一段時間自主的完成某項任務,如下將對系統定時和延時做詳細介紹。
####一、at命令####
at命令基本用法
at -l ##列出延遲任務
at -r 任務id ##刪除此id任務
at -m ##讓無輸出的命令不產生郵件
at -c 任務id ##查看此id 延遲任務的執行動作
at -f 文件 ##用文件內容記錄的命令作為延遲任務的執行命令
at定時任務,用watch -n 1 任務執行位置 監控
在一分鐘後執行 touch /mnt/file{1..5},按ctrl d 結束
查看將要執行的任務id
刪除將要執行的任務id,終止任務執行,atq 任務id
清空日誌 > /var/spool/mail/root mailq
at -m 不產生郵件
用student用戶編輯文件
用文件內容作為延遲任務的自行
查看延遲任務id at -l
查看延遲任務執行的動作 at -c 任務id
2.at命令的使用監控
默認系統中全部用戶都有執行at命令的權力那麽如何設定at命令的黑白的名單
##用戶黑戶單
默認情況下,系統中是不存在黑白名單的,這個名單的路徑
/etc/at.deny ##用戶黑名單,此名單默認為空,並且在白名單不存在時生效用戶
默認情況下,student用戶可使用at 命令
黑名單中禁止student用戶登錄
student用戶被禁止使用at命令
3.at命令的白名單
默認情況下系統是不存在at白名單用戶的
但是當白名單出現時,at命令將會讓名單中的用戶及root用戶使用
其他用戶不能執行at命令
在白名單中添加student用戶
root用戶可使用at命令
student用戶可使用at命令
class用戶不能使用at命令
####二、cron####
在約定的時間執行特定的任務
這個程序是由crond.service 服務提供
寫入程序的時間是永久保存的
##設定方式
crontab -e -u 用戶名稱(可以不寫)
分鐘 小時 天 月 周 事件
30 7 * * * rm -fr /mnt/* ##每天7:30刪除/mnt/的所有內容
30 7 3,16 * * rm -fr /mnt/* ##每月的3號和16號7:30刪除/mnt/的所有內容
30 7 3-16 * * rm -fr /mnt/* ##每月的3號到16號7:30刪除/mnt/的所有內容
30 7 3,16 2 3 rm -fr /mnt/* ##2月的3號和16號以及二月的每個周三的7:30刪除/mnt/的所有內容
*/30 * * * 1-5 rm -fr /mnt/* ##周一到周五每隔30分鐘的7:30刪除/mnt/的所有內容
開啟服務 systenctl start crond.service
寫入程序 crontab -e
crontab -l ##列出當前用戶的cron任務
crontab -r##刪除當前crontab任務
/var/spool/cron/* ##cront任務記錄文件存放的位置
也可以根據存放位置進行查看
監控 watch -n 1 ‘ls -l /mnt/‘
2.cron的黑白名單
默認情況下系統只存在黑名單,當白名單被建立,黑名單失效
##黑名單
/etc/cron.deny ##在此名單中的用戶不能執行crontab
class用戶寫入黑名單
class 不能執行crontab
student用戶可執行
##白名單
/etc/cron.allow ##用戶白名單,當此名單出現,除root用戶及名單中的用戶其他用戶不能使用crontab命令
白名單中寫入student
student用戶可使用crontab
class用戶不能使用crontab命令
3.文件方式定義crontab
vim /etc/spool/cron/用戶名稱 ##以某個用戶身份執行cron,文件名稱必須和用戶名稱一致
分 時 天 月 周 動作
vim /etc/cron.d/文件 ##設定多個用戶身份執行cron
<分> <時> <天> <月> <周> <用戶> <動作>
在/mnt/執行某個動作,給/mnt/加上可執行權限
以student用戶執行cron
watch -n 1 ‘ls -l /mnt/‘
用追加的方式導入
以腳本的形式執行cron vim cron.sh
運行腳本
監控可得,腳本命令執行成功
/etc/cron.d/文件,有一些管理把我們每月,每周,每天,每小時要執行的文件分別放入不同的文件中來執行
Linux中的定時和延時任務