例行指令就是那些需要定期執行的指令或者某個腳本。在linux中一般使用at 和contable服務來實作。下面就簡要的介紹一下兩個的大概使用方法
at :此服務僅僅執行一次,之後就從linux中取消
先檢視一下at服務的狀态
[root@localhost test]# service atd status
atd (pid 2222) 正在運作...
停止服務
[root@localhost test]# service atd stop
停止 atd:[确定]
啟動服務
[root@localhost test]# service atd start
啟動 atd:[确定]
設定開機時自動啟動
[root@localhost test]# chkconfig --level 35 atd on
取消開機時自動啟動
[root@localhost test]# chkconfig --level 35 atd off
[root@localhost test]# ls
yang.txt
設定2分鐘後 删除test目錄裡面的yang,txt 檔案
[root@localhost test]# at now + 2 minutes
at> rm -f yang.txt
at>
job 5 at 2010-11-26 20:10
查詢目前主機上有多少的at 服務
[root@localhost test]# atq
5 2010-11-26 20:10 a root --5 代表編号,之前我做了測試。
上面說 在2010-11-26 20:10 有一個定時工作 設定該工作的是root ,編号為5
[root@localhost test]# atq
過了兩分鐘以後 檢視test 目錄和 at服務 ,可以看見yang.txt 檔案被删除了,而且at服務也沒有了。當然如果設定at 服務錯誤或者想要撤銷,可以執行如下語句:
[root@localhost test]# at now + 4 minutes
at> cp yant^H -我設定了一個錯誤的例子。
job 6 at 2010-11-26 20:17
6 2010-11-26 20:17 a root --這次編号變為6
[root@localhost test]# atrm 6 --atrm 後面跟 jobnumber 意為删除該工作。
[root@localhost test]# atq --再次查詢 編号為6的 at 服務被删除了。
[root@localhost test]#
---至此 at 服務的使用方法結束。更多的at ,atq ,atrm 使用方法請參考man。
cron: 此服務将循環進行。
相對于at 一次性執行服務,多次循環工作的工作就由cron這個系統服務來完成的。
linux提供了crontab 指令 來實作 例行工作。
使用者要想使用crontab 的使用者是由一下檔案決定 的;
/etc/cron.allow:
将可以使用cron服務的帳号寫入該檔案,若不在該檔案的使用者則不能使用cron服務
/etc/cron.deny
将禁止使用cron服務的帳号寫入該檔案,若不在該檔案的使用者則能使用cron服務
<b>當然 如果不存在以上兩個檔案的話 就隻有root使用者可以使用cron服務</b>。cron.allow 比cron.deny 優先,一般這兩個檔案隻使用一個就可以了。一般來說系統保留cron.deny 。
下面介紹一下crontab的使用方法:
啟動與關閉服務與at 一樣,隻是服務名稱不同罷了。是以,偶将此省略了。
[root@localhost test]# crontab -l --
no crontab for root
[root@localhost test]# crontab [-u name] [-l|-e|-r]
-bash: -e: command not found
-bash: -r]: command not found
[-u: 沒有那個檔案或目錄
[root@localhost test]# crontab -e
no crontab for root - using an empty one
10 20 26 11 * cp /root/yang.txt /root/test/yang1.txt --11月26号20點10分 将yang.txt 檔案拷貝到 test檔案夾中并改為yang1.txt
~
"crontab.XXXX9gx37D" 1L, 53C written
crontab: installing new crontab
[root@localhost test]# crontab -l --檢視使用者目前的crontab 工作。
10 20 26 11 * cp /root/yang.txt /root/test/yang1.txt
系統設定的 /etc/crontab
[root@localhost test]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
<b>MAILTO=root 說明當crontab發生錯誤時或者有stderr stdout資訊時,會将錯誤的資訊傳遞給誰。系統設定為發送mail給root。管理者可以設定為自己的郵箱</b>
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly --額每小時
02 4 * * * root run-parts /etc/cron.daily --每天
22 4 * * 0 root run-parts /etc/cron.weekly --每星期
42 4 1 * * root run-parts /etc/cron.monthly --每個月
現在看看剛才設定的crontab服務;
yang1.txt -成功執行了!
當我們要删除已經設定的服務時;
[root@localhost test]# crontab -l
[root@localhost test]# crontab -r
注意:當僅僅隻是删除一個任務時 請使用crontab -e 來編輯 crontab -r 是删除所有的任務。
-----------------------------------------EOF------------------------------