實現linux定時任務有:cron、anacron、at等,這裡主要介紹cron服務。
名詞解釋:
cron是服務名稱,crond是後台程序,crontab則是定製好的計畫任務表。
軟體包安裝:
要使用cron服務,先要安裝vixie-cron軟體包和crontabs軟體包,兩個軟體包作用如下:
vixie-cron軟體包是cron的主程式。
crontabs軟體包是用來安裝、卸裝、或列舉用來驅動 cron 守護程序的**的程式。
檢視是否安裝了cron軟體包: rpm -qa|grep vixie-cron
檢視是否安裝了crontabs軟體包:rpm -qa|grep crontabs
如果沒有安裝,則執行如下命令安裝軟體包(軟體包必須存在)
rpm -ivh vixie-cron-4.1-54.fc5*
rpm -ivh crontabs*
yum install vixie-cron
yum install crontabs
檢視crond服務是否執行:
pgrep crond
或/sbin/service crond status
或ps -elf|grep crond|grep -v "grep"
crond服務操作命令:
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。由於cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
你也可以將這個服務在系統啟動的時候自動啟動:
在/etc/rc.d/rc.local這個指令碼的末尾加上:
/sbin/service crond start
現在cron這個服務已經在程序裡面了,我們就可以用這個服務了
-------------------------------------
以linux下定時備份mysql為例說明下
寫乙個簡單的mysql備份shell指令碼
vi#!/bin/sh
da=`date +%y%m%d%h%m%s`
mysqldump -u root -pdongjj --all-database>/root/mysqlbakup/$da
儲存為 mysqlbak.sh
然後crontab-e
0 3 * * * /root/mysqlbak.sh
儲存退出
相關命令----------------
crontab file [-u user]-用指定的檔案替代目前的crontab。
crontab-[-u user]-用標準輸入替代目前的crontab.
crontab-1[user]-列出使用者目前的crontab.
crontab-e[user]-編輯使用者目前的crontab.
crontab-d[user]-刪除使用者目前的crontab.
crontab-c dir- 指定crontab的目錄。
crontab檔案的格式:m h d m d cmd.
m: 分鐘(0-59)。
h:小時(0-23)。
d:天(1-31)。
m: 月(1-12)。
d: 一星期內的天(0~6,0 表示星期天)
除了數字還有幾個個特殊的符號就是"*"、"/"和"-"、",",*代表所有的取值範圍內的數字,"/"代表每的意思,"*/5"表示每5個單位,"-"代表從某個數字到某個數字,","分開幾個離散的數字。
這裡時間只是到分,有兩種方案可以按秒來執行,如下:
第一種方案,當然是寫乙個後台執行的指令碼一直迴圈,然後每次迴圈sleep一段時間。
while true ;do
command
sleep xx //間隔秒數
done
第二種方案,使用crontab。
我們都知道crontab的粒度最小是到分鐘,但是我們還是可以通過變通的方法做到隔多少秒執行一次。
以下方法將每20秒執行一次
crontab -e
* * * * * /bin/date
* * * * * sleep 20; /bin/date
* * * * * sleep 40; /bin/date
說明:需要將/bin/date更換成你的命令即可
這種做法去處理隔幾十秒的定時任務還好,要是每1秒執行一次就得新增60條記錄。。。如果每秒執行還是用方案一吧。
每次編輯完某個使用者的cron設定後,cron自動在/var/spool/cron下生成乙個與此使用者同名的檔案,此使用者的cron資訊都記錄在這 個檔案中,這個檔案是不可以直接編輯的,只可以用crontab -e 來編輯。cron啟動後每過乙份鐘讀一次這個檔案,檢查是否要執行裡面的命令。因此此檔案修改後不需要重新啟動cron服務。
檢視crontab 執行的日誌,可以在/var/log/cron* 檢視,或者 0 3 * * * /root/mysqlbak.sh >/var/log/mysqlbak.log 2>&1 把日誌定向出來檢視。
linux設定定時任務
service crond status如果滅有,需要確認是否安裝 crontab l能識別就說明已經安裝,然後沒有安裝的話進行安裝,步驟如下 1.安裝crontab root centos yum install vixie cron root centos yum install crontab...
LINUX 定時任務設定
為當前使用者建立cron服務 鍵入 crontab e 編輯crontab服務檔案 例如 檔案內容如下 2 bin sh home admin jiaoben buy deletefile.sh 儲存檔案並並退出 2 bin sh home admin jiaoben buy deletefile....
linux設定定時任務
crontab相關服務 service crond status 檢視crontab服務狀態 service crond start 啟動服務 service crond reload 重新載入配置 service crond restart 重啟服務 service crond stop 關閉服務...