linux中的定時任務及延時任務

(一)延時任務


一.at命令的基本用法


1.基本格式

[root@really mnt]# at now+1min     ##at  +指定時間(時時:分分)/ at + now+數字min
at> touch /mnt/file1               ##輸入希望執行的命令 
at> <EOT>                          ##ctrl+d 執行
job 1 at Wed Nov  1 22:17:00 2017


2.at -l        #列出延遲任務id


3.at -r    任務id    #刪除此id的任務


4.at -c    任務id    #查看此id的延遲任務的執行動作


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


6.at -m        #讓無是出的命令產生郵件

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



二.at命令的使用控制

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


1.用戶黑名單

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

(1)這個名單的路徑
          /etc/at.deny        ##用戶黑名單,此名單默認爲空,並且在白名單不存在時生效

vim /etc/at.deny
student                               ##student使用at命令的權力被禁止
[student@client ~]$ at now+1min        
You do not have permission to use at.    ##student不能執行at命令


2.at命令的白名單

默認系統中是不存在at的白名單的,但是當白名單出現,系統用除名單中出現的用戶以及root外其他用戶均不能執行at命令

(1)[root@really mnt]# touch /etc/at.allow        ##建立用戶白名單,當白名單出現,黑名單失效

[root@really mnt]# su - student
Last login: Wed Nov  1 22:54:25 CST 2017 on pts/2
[student@really ~]$ at 22:55
You do not have permission to use at.           
[student@really ~]$ exit
logout

[root@really mnt]# su - kiosk 
Last login: Wed Nov  1 23:00:50 CST 2017 on pts/2
[kiosk@really ~]$ at 22:55
You do not have permission to use at.


(2)
[root@really mnt]# vim /etc/at.allow         #在白名單中添加用戶,那麼student用戶可以執行at
[root@really mnt]# cat /etc/at.allow
student

[root@really mnt]# su - student 
Last login: Wed Nov  1 23:01:16 CST 2017 on pts/2
[student@really ~]$ at 23:02
at> <EOT>
job 11 at Thu Nov  2 23:02:00 2017
[student@really ~]$ exit
logout
[root@really mnt]# su - kiosk 
Last login: Wed Nov  1 23:01:42 CST 2017 on pts/2
[kiosk@really ~]$ at 23:23
You do not have permission to use at.          #student執行at成功,但測試kiosk依然不可以






(二)定時任務



一.cron基礎用法


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



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


3.cron設定方式

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月的所有周三
58    06-17   *      *     *     rm -fr /mnt/*     #6-17點,每個小時的58分
*/30  06-17   *      *     1-5   rm -fr /mnt/*     #週一到週五的早上6點到下午5點每隔半小時執行


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



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


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




二.cron的黑白名單

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


1.黑名單

[root@really ~]# vim /etc/cron.deny                ##在此名單中的用戶不能執行crontab
You have new mail in /var/spool/mail/root
[root@really ~]# cat /etc/cron.deny
student                                                               ##student用戶不能執行crontab


[root@really ~]# su - student 
Last login: Wed Nov  1 23:29:18 CST 2017 on pts/2
[student@really ~]$ crontab -e
You (student) are not allowed to use this program (crontab)                  ##student執行crontab被禁止
See crontab(1) for more information


2.白名單

[root@really ~]# touch /etc/cron.allow                                                 #建立白名單,當此名單出現,除root用戶及名單中的用戶其他用戶不能執行crontab

[root@really ~]# su - student
Last login: Thu Nov  2 09:12:46 CST 2017 on pts/1
[student@really ~]$ crontab -e
You (student) are not allowed to use this program (crontab)
See crontab(1) for more information
[student@really ~]$ exit
logout

[root@really ~]# su - kiosk 
Last login: Thu Nov  2 06:52:53 CST 2017 on :0
Last failed login: Thu Nov  2 09:02:45 CST 2017 from :0 on :0
There was 1 failed login attempt since the last successful login.
[kiosk@really ~]$ crontab -e
You (kiosk) are not allowed to use this program (crontab)
See crontab(1) for more information
[kiosk@really ~]$ exit
logout


[root@really ~]# vim /etc/cron.allow                             
You have new mail in /var/spool/mail/root
[root@really ~]# cat /etc/cron.allow
student                                                                            #student可以執行crontab

[root@really ~]# su - student 
Last login: Thu Nov  2 09:15:52 CST 2017 on pts/1
[student@really ~]$ crontab -e                                      #測試 student可以執行
no crontab for student - using an empty one
crontab: installing new crontab
[student@really ~]$ exit
logout

[root@really ~]# su - kiosk 
Last login: Thu Nov  2 09:16:07 CST 2017 on pts/1
[kiosk@really ~]$ crontab -e                                                          #測試 kiosk仍然不可以執行
You (kiosk) are not allowed to use this program (crontab)
See crontab(1) for more information




三.文件方式定義crontab

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

格式:
分    時    天    月    周    動作



2.vim /etc/cron.d/文件                #設定多個用戶身份執行cron

格式:
<分>  <時>  <天>  <月>  <周>  <用戶>  <動作>


或直接多行錄入




四.系統中的cron任務

1./etc/cron.daily/        ##系統每天做執行的程序


2./etc/cron.hourly/        ##系統每小時執行的程序


3./etc/cron.monthly/        ##系統每月執行的程序


4./etc/cron.weekly/        ##系統每星期執行的程序


































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章