7.例行性工做排程



at相關文件linux

var/spool/at/       ---at指令制定運行的工做排程會以文本的方式記錄到這個文檔中,等待atd執行vim

/etc/inid.d/atd       ----atd服務程序安全

/etc/at.allow            ----容許執行at命令的帳號(有這個文件就不會理/etc/at.deny)bash

/etc/at.deny            ----禁止使用at命令的帳號(at.allow不存在纔會檢查這個文件),系統默認使用這個文件 網絡

 


cron相關文件app

/usr/bin/crontabui

/var/spool/cron/  ----相應的,這是cron的,不事後面還會以帳號做爲判斷【1-8】spa

/etc/cron.allow       rest

/etc/cton.denyserver

/var/log/cron      ----cron執行的每個例行工做杜輝記錄在這裏

/etc/crontab      ----系統的例行性任務,編輯後也許須要從新啓動一下crond服務(/etc/init.d/crond restart)

 

ancron相關文件

/etc/anacrontab

/var/spool/anacron/*


linux上常見的例行性工做【1-1,2】

1.  linux工做排程的種類:at,cron 【1-0】

        A:僅執行一次的工做排程 at【1-3,4】

              # /etc/init.d/atd restart            ----啓動atd(linux系統中負責單一工做排程的服務)

              # chkconfig atd on                  ----設置atd服務開機自動啓動

            一.實際運做單一工做排程 

            案例一:再過五分鐘,將/root/.bashrc寄給root本身【1-5】

              # at now + 5 minutes

              at>/bin/mail root -s "testong at job"   < /root/.bashrc

              at><EOT>          ----^d,表明結束

              job 4 at 2013/11/30 15:38

            案例二:將上述的at工做(第4個)內容列出來【1-6】

             # at -c 4              ----第4號at工做實際執行的腳本內容

            案例三:在2013/12/21 00:00關機

             # at 00:00 2013-12-21

             at>sync

             at>sync

             at>shutdown -h now

             at><EOT>

             job 5 at 2013-12-21 00:00

           案例四:在2013/12/20 4:00在終端機/dev/tty1顯示「It is coming....」

            # at 04:00 1013-12-20

            at>echo "It is coming......" > /dev/tty1           ---at指令時和終端無關的,所以必須制定輸出到某個終端

            at><EOT>

            二:at工做的管理atq,atrm,batch

                     案例一:查詢目前主機上面有多少at工做排程

                       # atq            ----查看工做排程

                       # atrm 5          ----將5號單一工做排程幹掉

                     案例二:讓系統有空時才進行背景任務

                       # batch 00:00 2013-12-21          ----和上面的案例三類似,仍是調用at來執行,不過會在cpu負載小於0.8是才執行,不然暫緩

             at>sync

             at>sync

             at>shutdown -h now

             at><EOT>

             job 5  at 2013-12-21 00:00 

            # atq           ---你看baech也是atq和atrm管理的

            # atrm 6       ----假設該at任務爲6

B:循環執行的例行性工做排程

            注意:crond服務是系統默認隨開機啓動的;cron執行的每個工做都會被記錄到/var/log/cron中,所以這個檢查這個文件有時候或許能夠查殺木馬

            一:使用者設定例行工排程

                   案例一:用nemo身份天天12:00發信給本身

                   # crontab -e           ----將進入vi編輯界面

                   #每項工做都是一行          

                   0 12 * * * mail nemo -s "at 12:00"  < /home/nemo/.bashrc   ----minute hour day month week   command【1-10】

                   

                   案例二:每一年11月19號23:59發一封郵件給yxl

                   # crontab -e 

                  #女友的生日

                   59 23 19 11 * mail -s  "Happy birthday!" < /home/nemo/lover.txt

                  

                   案例三:每5分鐘執行一次/home/nemo/test.sh

                 #crontab -e 

                  * /5 **** /home/nemo/test.sh 

                   案例四:每週六都和朋友有約,每週五16:30發一封郵件提醒他

                  # corn -e

                  30 16 * * 5 mail friend@his.server.name   < /home/nemo/friend.txt

                  

                  # cron -l          ---查看當前帳號全部的cron工做

                  # cron -r         ----刪除當前用戶全部的cron工做排程(刪除某個工做要cron -e在vi下刪除對應那一行)

              二:系統例行工做排程

                  # cat /etc/crontab             ----該檔案中記錄系統週期性例行任務【1-11]】

                  1.指令形態

                  注意:/ect/crontab這個檔案支持兩種指令下達的方式【1-12】

                  案例一:指令形態

                  01 × × ×  × nemo mail -s "testing" yxl  < /home/nemo/test.txt           ----以nemo的身份每小時執行一次這個mail指令

                  案例二:目錄規劃

                 × /5 × × × × root run-parts /root/runcrono               ----每5分鐘以root身份執行一下/root/runcrono下的全部可執行文件

                 × /5 × × × × root run-parts /bin/mrtg  /etc/mrtg/mrtg.cfg         ----每5分鐘偵測一下網絡流量

                  

                  2.一些注意事項

                      a:資源分配不均【1-13】

                      b:取消不要的輸出項目(數據流重導向)

                      c:安全檢驗(檢查/var/log/cron)

                      d:周與日月不可同時並存

              三:可喚醒停機期間的工做任務  anacron

                  1.什麼是anacron【1-14,15】

                   # ll  /etc/cron*/*ana*       ----在天天、每週、每個月的排程目錄中都能找到anacron的腳本文件

                   # cat /etc/cron.daily/0anacron      ----看一下腳本文件的內容

                   # cat  /etc/anacrontab      ----查看anacron執行文檔【1-16】

                   # more /var/spool/anacron/*       ----查看anacron的執行記錄【1-17】

                   # anacron -a cro.daily            ----運做流程【1-18】

                   # chkconfig --list anacron      ----查看anacron是否會在開機時自動執行


2.重點回顧【1-19】


3.本章習題     

  習題一:工做排程中有一個指令產生不少不重要的信息,避免其發郵件給root

             # vim /etc/crontab  

             * /3 * * * *   root /usr/local/ping.sh > /dev/null 2>&1            ----標準錯誤信息和標準輸出信息都丟棄(分 時 日 月 周 執行者 指令)       

 習題二:2013/12/21 寄一封信給yxl

             # at 1am 2013-12-21

             at>/bin/mail yxl -s "I will be with you forever" < /home/nemo/lastword.txt   

             at><EOT>

 習題三:每一個週一至週五的下午3:30執行如下/usr/local/bin/tea_time.sh

             # cron -e

             30 15 * * 1-5 /usr/local/bin/tes_time.sh

習題四:系統天天、每週、每個月各進行什麼樣的工做

             # ll /etc/cron*

習題五:每一個星期六凌晨三點去系統搜尋一下內有SUID/SGID的任何檔案!並將結果輸出到/tmp/uidgid.files

            # vim /etc/crontab

            0 3 * * 6 root find / -perm +6000 > /tmp/uidgid.files 

相關文章
相關標籤/搜索