新聞中心
在Linux系統(tǒng)中,有一種非常方便的工具——定時(shí)任務(wù),它可以幫助我們自動(dòng)執(zhí)行一些需要重復(fù)執(zhí)行的操作。而其中的每小時(shí)定時(shí)任務(wù),可以幫助我們快速、準(zhǔn)確地完成某些操作,提高工作效率。下面將介紹如何在Linux系統(tǒng)中設(shè)置每小時(shí)定時(shí)任務(wù)。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了鼓樓免費(fèi)建站歡迎大家使用!
Step 1:了解crontab
Linux中使用的是crontab來管理定時(shí)任務(wù)。crontab是一個(gè)命令,可以讓我們?cè)谝?guī)定時(shí)間內(nèi)執(zhí)行命令或者腳本。通過設(shè)置合適的時(shí)間,我們可以讓計(jì)算機(jī)定時(shí)自動(dòng)執(zhí)行我們需要執(zhí)行的腳本或命令。
Step 2:打開終端
在Linux系統(tǒng)中,打開終端輸入命令行“ crontab -e ”即可進(jìn)入crontab編輯器的環(huán)境。
Step 3:設(shè)置每小時(shí)定時(shí)任務(wù)
在crontab編輯器的界面中,我們需要在下方的空白處添加以下內(nèi)容:
0 * * * * /yourcommand
“0”表示定時(shí)任務(wù)執(zhí)行的分鐘數(shù),這里我們?cè)O(shè)置為“0”,表示每小時(shí)整點(diǎn)執(zhí)行命令;“*”表示月份、星期等時(shí)間單位,這里我們?cè)O(shè)置為“*”,表示每個(gè)月、每個(gè)星期都執(zhí)行;“/yourcommand”表示需要執(zhí)行的命令或腳本。
這里以備份系統(tǒng)的數(shù)據(jù)庫為例,設(shè)置每個(gè)小時(shí)自動(dòng)備份:
0 * * * * /usr/bin/mysqldump -uroot -p123456 –all-databases > /backup/mysql/`date +%Y%m%d%H%M%S`.sql
每個(gè)小時(shí)都會(huì)執(zhí)行上述腳本,將當(dāng)前系統(tǒng)的所有數(shù)據(jù)庫備份至/backup/mysql目錄下,并以當(dāng)前年月日時(shí)分秒為文件名保存。
我們也可以將上述命令寫入shell腳本文件中,將文件名作為命令進(jìn)行定時(shí)執(zhí)行。
Step 4:保存并退出
在crontab編輯器中,保存更改并退出,請(qǐng)按下Ctrl+o鍵,然后再按回車(Enter)鍵。為防止誤操作,編輯器還會(huì)提示你再次確認(rèn)是否保存更改,請(qǐng)輸入“Y”后,并再次按下回車鍵即可完成保存退出。
要驗(yàn)證定時(shí)任務(wù)是否正確執(zhí)行,可以登錄到系統(tǒng)后臺(tái),查看/backup/mysql目錄下是否有備份文件生成,如果有則表示定時(shí)任務(wù)已經(jīng)成功執(zhí)行。
通過定時(shí)任務(wù),我們可以快速、方便地實(shí)現(xiàn)自動(dòng)執(zhí)行某些操作,省去了人工操作的時(shí)間,同時(shí)也避免了出錯(cuò)的可能性。需要注意的是,在設(shè)置每小時(shí)定時(shí)任務(wù)時(shí),定時(shí)任務(wù)需要與系統(tǒng)運(yùn)行的其他任務(wù)區(qū)別開來,避免出現(xiàn)沖突或占用過多系統(tǒng)資源。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
linux下編寫定時(shí)任務(wù)crontab
linux下槐腔的crontab服務(wù):
1、crontab 是用來讓使用者在固定時(shí)間或固定間隔執(zhí)行程序之用
在linux平臺(tái)上如果需要實(shí)現(xiàn)任務(wù)調(diào)度功能可以編寫cron腳本來實(shí)現(xiàn)。
以某一頻率執(zhí)行任務(wù)
linux缺省會(huì)啟動(dòng)crond進(jìn)程,crond進(jìn)程不需要用戶啟動(dòng)、關(guān)閉。
crond進(jìn)程負(fù)責(zé)讀取調(diào)度任務(wù)并執(zhí)行,用戶只需要將相應(yīng)的調(diào)度腳本寫入cron的調(diào)度
配置文件
中。
cron的調(diào)度文件有以下幾個(gè):
1. crontab
2. cron.d
3. cron.daily
4. cron.hourly
5. cron.monthly
6. cron.weekly
如果用的任務(wù)不是以hourly monthly weekly方式執(zhí)行,則可以將相應(yīng)的crontab寫入到crontab 或cron.d目錄中。
示例:
每隔一分鐘執(zhí)行一次腳本 /opt/bin/test-cron
.sh
可以在cron.d新建腳本 echo-date.sh
內(nèi)容為
*/1 * * * * root /opt/bin/test-cron.sh
2、cron是一個(gè)linux下的定時(shí)執(zhí)行工具,可以在無需人工干預(yù)的情況下運(yùn)行作業(yè)。由于Cron 是Linux的內(nèi)置服務(wù),如果它不自動(dòng)起來,可以用以下的方法啟動(dòng)、關(guān)閉這個(gè)服務(wù):
/in/service crond start //啟動(dòng)服務(wù)
/in/service crond stop //關(guān)閉服務(wù)
/in/service crond restart //重啟服務(wù)
/in/service crond reload //重新載入配置
你也可以將這個(gè)服務(wù)在系統(tǒng)啟動(dòng)的時(shí)候自動(dòng)啟動(dòng):
在/etc/rc.d/rc.local這個(gè)腳本的末尾加上:
/in/service crond start
現(xiàn)在Cron這個(gè)服務(wù)已經(jīng)在進(jìn)程里面了,我們就可以用這個(gè)服務(wù)了
查看服務(wù)是否已經(jīng)運(yùn)行用 ps -ax | grep cron
3、crontab命令
查看該用戶下的crontab服務(wù)是否創(chuàng)建成功, 用 crontab -l 命令
命令 which php 查看linux下安裝的php的路徑
cron服務(wù)提供crontab命令來設(shè)定cron服務(wù)的,以下是這個(gè)命令的一些參數(shù)與說明:
crontab -u //設(shè)定某個(gè)用戶的cron服務(wù),一般root用戶在執(zhí)行這個(gè)命令的時(shí)候需要此參數(shù)
crontab -l //緩仔列出某個(gè)用戶cron服務(wù)的詳細(xì)內(nèi)容
crontab -r //刪除沒個(gè)用戶的cron服務(wù)
crontab -e //編輯某個(gè)用戶的cron服務(wù)
比如說root查看自己的cron設(shè)置:crontab -u root -l
再例如,root想刪除fred的cron設(shè)置:crontab -u fred -r
在編輯cron服務(wù)時(shí),編輯的內(nèi)容有一些格式和約定,輸入:crontab -u root -e
進(jìn)入vi編輯模式,編輯的內(nèi)容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
任務(wù)調(diào)度的crond常駐命令crond 是linux用來定期執(zhí)行程序的命令。當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此 任務(wù)調(diào)度命令。crond命令每分鐘會(huì)定期檢查是否有要執(zhí)行的工作,如果有要執(zhí)行的工作便會(huì)自動(dòng)執(zhí)行該工作。
crontab命令選項(xiàng):
-u指定一個(gè)用戶
-l列出某個(gè)用戶的任務(wù)計(jì)劃
-r刪除某個(gè)用戶的任務(wù)
-e編輯某個(gè)用戶的任務(wù)
4、cron文件語法:
分 小時(shí) 日月星期 命令
command (取值范圍,0表示周日一般一行對(duì)應(yīng)一個(gè)任務(wù))
5、 新增調(diào)度任務(wù)
新增調(diào)度任務(wù)可用兩種方法:
1)、在
命令行
輸入: crontab -e 然后添加相應(yīng)的任務(wù),wq存盤退出。
2)、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應(yīng)的任務(wù)。
6、 查看調(diào)度任務(wù)鉛哪衫
crontab -l //列出當(dāng)前的所有調(diào)度任務(wù)
crontab -l -u jp //列出用戶jp的所有調(diào)度任務(wù)
7、 刪除任務(wù)調(diào)度工作
crontab -r //刪除所有任務(wù)調(diào)度工作
8、 任務(wù)調(diào)度執(zhí)行結(jié)果的轉(zhuǎn)向
例1:每天5:30執(zhí)行l(wèi)s命令,并把結(jié)果輸出到/jp/test文件中
* * * ls >/jp/test 2>&1
注:2>&1 表示執(zhí)行結(jié)果及錯(cuò)誤信息。
SHELL=/bin/bash
PATH=/in:/bin:/usr/in:/usr/bin
MAILTO=root //如果出現(xiàn)錯(cuò)誤,或者有數(shù)據(jù)輸出,數(shù)據(jù)作為郵件發(fā)給這個(gè)帳號(hào)
HOME=/ //使用者運(yùn)行的路徑,這里是
根目錄
# run-parts
* * * * root run-parts /etc/cron.hourly//每小時(shí)執(zhí)行/etc/cron.hourly內(nèi)的腳本
* * * root run-parts /etc/cron.daily//每天執(zhí)行/etc/cron.daily內(nèi)的腳本
* *root run-parts /etc/cron.weekly//每星期執(zhí)行 /etc/cron.weekly內(nèi)的腳本
* * root run-parts /etc/cron.monthly //每月去執(zhí)行/etc/cron.monthly內(nèi)的腳本
大家注意”run-parts”這個(gè)參數(shù)了,如果去掉這個(gè)參數(shù)的話,后面就可以寫::要運(yùn)行的某個(gè)腳本名,而不是文件夾名了。
總結(jié):
編寫定時(shí)任務(wù)的兩種方式:1.sudo vim /etc/crontab 2. sudo crontab -e
查看定時(shí)任務(wù)的兩種方式:1.sudo cat /etc/crontab 2.sudo crontab -l
*/1 * * * * appuser cd /app/webserver/website/api-cb.chuchujie.com/master/current/script/ && ./back_coupon.sh 2 10 >> /dev/null 2>&1
查看定時(shí)任務(wù)是否運(yùn)行:
sudo tail -f /var/log/cron //定時(shí)任務(wù)日志(查看剛才設(shè)置的任務(wù)是否執(zhí)行)
注:腳本有可執(zhí)行權(quán)限
sh a.sh(不需要執(zhí)行權(quán)限)
./sh (需要執(zhí)行權(quán)限)
1.當(dāng)shell腳本具有可執(zhí)行權(quán)限時(shí),用sh filename與./filename執(zhí)行腳本是沒有區(qū)別的。./filename是因?yàn)楫?dāng)前目錄沒有在PATH中,所有”.”是用來表示當(dāng)前目錄的。
linux使用cron怎么設(shè)置定時(shí)任務(wù)
實(shí)現(xiàn)linux定時(shí)任務(wù)有:cron、anacron、at等,這里主要介紹cron服務(wù)。
名詞解答世釋:
cron是服務(wù)名腔李稱,crond是后臺(tái)進(jìn)程,crontab則是定制好的計(jì)劃任務(wù)表。
軟件包安裝:
要使用cron服務(wù),先要安裝vixie-cron軟件包和crontabs軟件包,兩個(gè)軟件包作用如下:
vixie-cron軟件包是cron的主程序。
crontabs軟件包是用來安裝、卸裝、或列舉用來驅(qū)動(dòng) cron 守護(hù)進(jìn)程的表格的程序。
查看是否安裝了cron軟件包: rpm -qa|grep vixie-cron
查看是否安裝了crontabs軟件包:rpm -qa|grep crontabs
如果沒有安裝,則執(zhí)行如下命令安裝軟件包(軟件包必須存在)
rpm -ivh vixie-cron-4.1-54.FC5*
rpm -ivh crontabs*
如果本地伍舉遲沒有安裝包,在能夠連網(wǎng)的情況下可以在線安裝
yum install vixie-cron
yum install crontabs
確定設(shè)置crontab的用戶,舉例用root執(zhí)行:
crontab -e
進(jìn)入編輯模式:
00 * * * 執(zhí)行命令
表示每天00點(diǎn)00分執(zhí)行命令一次
其他時(shí)間設(shè)置:
每五分鐘執(zhí)行 */5 * * * *
每小時(shí)執(zhí)行* * * *
每天執(zhí)行* * *
每周執(zhí)行* * 0
每月執(zhí)行* *
每年執(zhí)行 *
crontab詳解:
1.作用
使用crontab命令可以修改crontab配置文件,然后該配置由cron公用程序在適當(dāng)?shù)臅r(shí)間執(zhí)行,該命令使用權(quán)限是所有用戶。
2.格式
crontab {-l | -r | -e}
3.主要參數(shù)
-e:執(zhí)行文字編輯器來設(shè)定時(shí)程表,內(nèi)空的文字編輯器是vi
-r:刪除目前的時(shí)程表
-l列出目前的時(shí)程表。
Crontab文件的格式為”M H D
m d cmd”。其中,M代表分鐘(0~59),H代表小時(shí)(0~23),D代表天(1~31),m代表月(1~12),d代表一星期內(nèi)的天(0~6,0為星期天)。Cmd表示要運(yùn)行的程序,它被送入sh執(zhí)行,這個(gè)shell只有USER、HOME、SHELL三個(gè)環(huán)境變量。
使用cron服務(wù),用server crond status查看cron服務(wù)狀態(tài),如果沒有啟動(dòng)則service
crond start啟動(dòng)它,cron服務(wù)是一個(gè)定時(shí)執(zhí)行的服務(wù),可以通過crontab命令添加或編輯需要定時(shí)執(zhí)行的任務(wù):
crontab –u //設(shè)定某個(gè)用戶的cron服務(wù),一般root用戶在執(zhí)行這個(gè)命令的時(shí)候需要此參數(shù)
crontab –l //列出某個(gè)用戶cron服務(wù)的詳細(xì)內(nèi)容
crontab –r //刪除某個(gè)用戶的cron服務(wù)
crontab –e //編輯某個(gè)用戶的cron服務(wù)
crontab filename //以filename作為crontab的任務(wù)列表文件并載入
比如說root查看自己的cron設(shè)置:crontab –u root –l
再例如,root想刪除fred的cron設(shè)置:crontab –u fred –r
在編輯cron服務(wù)時(shí),編輯的內(nèi)容有一些格式和約定,輸入:crontab –u root –e
進(jìn)入vi編輯模式,編輯的內(nèi)容一定要符合下面的格式:
*/1
* * * * ls >>/tmp/ls.txt
編輯/etc/crontab文件,在末尾加上一行:30 5 * * * root init 6這樣就將系統(tǒng)配置為每天早上5點(diǎn)30分自動(dòng)重新啟動(dòng)。
crontab 文件中的行由6個(gè)字段組成,不同字段間用空格或tab鍵分隔。前5個(gè)字段指定命令要碰渣運(yùn)行的時(shí)間
分鐘(0-59)
小時(shí)(0-23)
日期(1-31)
月份(1-12)
星期幾(0-6,其中0代表星期日,好像7也代表星期日)
第6個(gè)字段是一個(gè)要在適當(dāng)時(shí)間執(zhí)行的字符串。
例子:
#MIN HOUR DAYMONTH DAYOFWEEKCOMMAND
#每天早上6點(diǎn)10分
* * * date
#每兩個(gè)小時(shí)
0 */2
* * * date
#晚上11點(diǎn)到早上8點(diǎn)之間每兩個(gè)小時(shí),早上8點(diǎn)
/2,* * * date
#每個(gè)月的4號(hào)和每個(gè)禮拜一到禮拜三的早上11點(diǎn)
*date
#1月1日早上4點(diǎn)
* date
補(bǔ)充:在使用crontab的時(shí)候笑攜悄,要特別注意的是運(yùn)行腳本中能夠訪問到的環(huán)境變量和當(dāng)前測(cè)試環(huán)境中隱槐環(huán)境變量未必一致,一個(gè)比較保險(xiǎn)的做法是在運(yùn)行的腳本程序中自行設(shè)置環(huán)境變量(export)
(1)先建一個(gè)文件crond.txt如下,每天早上5點(diǎn)36分重新啟動(dòng)
* * * reboot
(2)上傳到/opt目錄
(3)運(yùn)行命令
crontab /opt/crond.txt
crontab –l
讓配置文件生效:如果讓配置文件生效,還得重新啟動(dòng)cron,切記,既然每個(gè)用戶下的cron配置文件修改后,也要重新啟動(dòng)cron服務(wù)器。
在Fedora和Redhat中,我們應(yīng)該用:
/etc/rc.d/crond restart
如果讓crond在開機(jī)時(shí)運(yùn)行,應(yīng)該改變其運(yùn)行級(jí)別:
chkconfig –level 35
crond on
service crond status查看cron服務(wù)狀態(tài),如果沒有啟動(dòng)則service
如何建立linux 時(shí)間同步 服務(wù)器
一、執(zhí)行步驟:1.以root身份登錄
2.查看系統(tǒng)時(shí)間(date)和系統(tǒng)bios時(shí)間(hwclock或/in/hwclock)
3.在/usr/in下,擾銷櫻斗雀使用命令 ntpdate 132.163.4.102 使系統(tǒng)時(shí)間和時(shí)間服務(wù)器時(shí)間同步.
4.將系統(tǒng)時(shí)間寫入bios(hwclock -w)
5.再次查看系統(tǒng)時(shí)間和系統(tǒng)bios時(shí)間
6.以上工作僅是當(dāng)前的時(shí)間同步,所以還需執(zhí)行以下工作:
使用crontab -e 命令將每小時(shí)執(zhí)行一次/usr/in/ntpdate 132.163.4.102;/in/hwclock -w;的任務(wù)加入到任務(wù)管理器。
假如以下內(nèi)容:0 1 * * * /usr/in/ntpdate 132.163.4.102;/in/hwclock -w;
二、加入計(jì)劃任務(wù):
1.使用以下命令編輯任務(wù)管理器
crontab -e
2.將以下語句加入到任務(wù)管理器中,其用途是:每小時(shí)執(zhí)行一次/usr/in/ntpdate 132.163.4.102;/in/hwclock -w;
注:執(zhí)行任務(wù)計(jì)劃的時(shí)間隨機(jī)訂
之上是總結(jié),按之上步驟來即可,以下參考就行:
先進(jìn)入到路徑:
/usr/in/下
使用其中的同步工具ntpdate,同步的時(shí)間服務(wù)器為:asia.pool.ntp.org
使用方法:
./ntpdate asia.pool.ntp.org
標(biāo)緩叢準(zhǔn)時(shí)間同步方法:
分布操作:
察看bios時(shí)間與系統(tǒng)時(shí)間
hwclock
察看系統(tǒng)時(shí)間
date
使用ntpdate命令使系統(tǒng)時(shí)間與時(shí)間服務(wù)器同步
ntpdate ntp1.nl.net
將系統(tǒng)時(shí)間寫入bios
hwclock -w
三、解決辦法使用:
1.使用以下命令編輯任務(wù)管理器
關(guān)于linux 每小時(shí)執(zhí)行的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),香港虛擬主機(jī)被稱為香港虛擬空間/香港網(wǎng)站空間,或者簡稱香港主機(jī)/香港空間。香港虛擬主機(jī)特點(diǎn)是免備案空間開通就用, 創(chuàng)新互聯(lián)香港主機(jī)精選cn2+bgp線路訪問快、穩(wěn)定!
網(wǎng)站題目:Linux定時(shí)任務(wù):每小時(shí)自動(dòng)執(zhí)行你所需的操作(linux每小時(shí)執(zhí)行)
轉(zhuǎn)載來源:http://www.fisionsoft.com.cn/article/cdsdces.html


咨詢
建站咨詢
