1. 程式人生 > >Linux中的定時和延時任務

Linux中的定時和延時任務

linux

如何讓系統定時的完成任務,如何讓系統再過一段時間自主的完成某項任務,如下將對系統定時和延時做詳細介紹。

####一、at命令####

  1. 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####

在約定的時間執行特定的任務

  1. 這個程序是由crond.service 服務提供

  2. 寫入程序的時間是永久保存的

    ##設定方式

    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中的定時和延時任務