天天看點

【LINUX學習】例行指令的建立

例行指令就是那些需要定期執行的指令或者某個腳本。在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------------------------------

繼續閱讀