linux中的延時與定時任務

################

#######at#######

################

 

#1.at命令的基本用法

 

[root@foundation60 ~]# at 10:00

at> echo hellp world

at> <EOT>

job 5 at Wed Nov  1 10:00:00 2017

[root@foundation60 ~]#

 

at -l                     #列出延遲任務id


at -r  任務id             #刪除此id對應的任務


at -m                     #讓無輸出的命令產生郵件               

at -M                     #讓有輸出的命令不產生郵件

at -c  任務id             #查看此id對應的延時任務的執行動作


at -f                     #用文件內記錄的命令作爲延時任務的的執行命令

 

 

#at命令的使用控制

默認系統中全部用戶都有執行at命令的權力,那麼如何設定at命令的黑白名單:

 

#黑名單

默認情況下,系統中是存在用戶黑名單的

/etc/at.deny            #用戶黑名單,此名單默認爲空,並且在白名單不存在時生效

vim /etc/at.deny

student                  #stdent不能執行at命令


黑名單中寫了kiosk因此用戶kiosk不能執行at命令。


但westos用戶可以執行at命令。



#白名單

默認系統中時不存在at的白名單的

但是當白名單出現時,系統出名單中出現的用戶以及root用戶

其他用戶均不能執行at命令

 

touch /etc/at.allow      #建立用戶白名單,當白名單出現,黑名單失效

建立白名單,並在其中寫入kiosk,儘管黑名單中有kiosk用戶仍可以執行at命令。

 

westos用戶不能執行at命令。


#################

######cron#######

#################

 

#1)這個程序是由

##crond.service服務提供

 

#2)寫入程序的時間和事件是永久保存的

 

cron設定方式

方法1

crontab  -e  -u  用戶名稱(可以不寫)

分鐘    小時                事件

58      06      *     *     *     rm -fr /mnt/*  #每天6:58刪除mnt中的所有內容

58      06      1,15  *     *     rm -fr /mnt/*  #每月1號和15號的6:58刪除mnt中的所有內容

58      06      1-15  *     *     rm -fr /mnt/*  #每月1號到15號的6:58刪除mnt中的所有內容

58      06      1,15  3     *     rm -fr /mnt/*  #3月1號和15號的6:58刪除mnt中的所有內容

58      06      1,15  3     3     rm -fr /mnt/*  #3月1號和15號以及3月的所有周三刪除mnt中的所有內容

58      06-17   *     *     *     rm -fr /mnt/*  #6-17點,每個小時的58分刪除mnt中的所有內容

*/30    06-17   *     *     1-5   rm -fr /mnt/*  #週一到週五的6-17點每個半小時刪除mnt中的所有內容一次

root用戶給自己創建定時任務。


root用戶給kiosk用戶創建定時任務。



crontab  -l              ##列出當前用戶的cron任務


crontab  -r              ##刪除當前用戶的cron任務


 

/var/spool/cron/*        ##cron任務記錄文件存放位置

 

##2.cron的黑白名單

 

#黑名單

默認情況下,系統中只存在黑名單,當白名單被建立時,黑名單失效

 

vim /etc/cron.deny

student                  ##student用戶不能執行crontab

 

 

#白名單

 

/etc/cron.allow          #用戶白名單,當此名單出現時,出root用戶及名單內出現的用戶外,其他用戶均不可執行crontab

 

touch /etc/cron.allow

 

vim /etc/cron.allow

westos                   #westos用戶可以執行crontab

 

##3.文件夾方式定義crontab

 

vim /var/spool/cron/用戶名稱      #以某個用戶身份執行cron,文件名稱必須和用戶名稱一致

              動作  

用root用戶給kiosk用戶下達定時任務,每天00:00清除系統日誌。

 

vim /etc/cron.d/文件.sh

                用戶    動作  #設定多個用戶身份執行cron

用root用戶給root用戶和kiosk用戶分別下達定時任務。root每分鐘touch下/tmp/root文件,kiosk每分鐘touch下/tmp/kiosk/文件

 


[root@foundation60 ~]# cat cron.sh

#!/bin/bash

#cat >>/etc/crod.sh/westos <<EOF

#* * * * * root touch /tmp/file{1,2}

#* * * * * student touch /tmp/file{3,4}

#EOF

 

 

 

 

發佈了50 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章