Centos7之如何設(shè)置定時(shí)任務(wù)
Centos7設(shè)置定時(shí)任務(wù)
最近出了一件大事,用ShowDoc的Docker方式部署在服務(wù)器上,白天有工人換機(jī)箱,把電斷了,導(dǎo)致ShowDoc數(shù)據(jù)丟了。。備份數(shù)據(jù)刻不容緩。
1、安裝 crontabs服務(wù)并設(shè)置開機(jī)自啟:
$ yum install crontabs $ systemctl enable crond $ systemctl start crond
2、配置定時(shí)規(guī)則
$ vim /etc/crontab //或者 crontab -e 立即生效
在配置文件中配置你的定時(shí)執(zhí)行規(guī)則
59 23 * * * root /home/backup/showdoc/backup.sh
backup.sh是你將要定時(shí)執(zhí)行的腳本文件,如圖所示:
規(guī)則很簡(jiǎn)單,看注釋就能看懂了,從左到右分別是 分鐘(0~59)、小時(shí)(0~23)、天(1~31)、月(1~12)、星期(0~6)、用戶名、要執(zhí)行的命令或者腳本。
腳本內(nèi)容如下:
#! /bin/bash t=$(date +%Y%m%d%H%M%S) cd /home/backup/showdoc/mount/ tar -zcvf ../data/data_$t.tar ./showdoc_data find /home/backup/showdoc/data -mtime 7 -type f|xargs rm -f
t是當(dāng)前日期,格式是年月日時(shí)分秒;tar -zcvf是將要備份的文件打成壓縮包,后綴會(huì)帶上日期;find ... -mtime 7 ...|xargs rm -f是只保留近七日的備份文件,之前的都會(huì)刪掉。
3、保存生效
$ crontab /etc/crontab
4、查看任務(wù)
$ crontab -l
任務(wù)列表,如圖所示:
到此定時(shí)任務(wù)配置完成。
CentOS7設(shè)置定時(shí)任務(wù) 每隔30分鐘執(zhí)行一次命令
安裝 crontabs服務(wù)并設(shè)置開機(jī)自啟
yum install crontabs systemctl enable crond systemctl start crond
設(shè)置用戶自定義定時(shí)任務(wù)
vi /etc/crontab
可以看到:
# Example of job definition: # .---------------- minute (0 - 59) # | ?.------------- hour (0 - 23) # | ?| ?.---------- day of month (1 - 31) # | ?| ?| ?.------- month (1 - 12) OR jan,feb,mar,apr ... # | ?| ?| ?| ?.---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | ?| ?| ?| ?| # * ?* ?* ?* ?* user-name ?command to be executed
即:
分鐘(0-59) 小時(shí)(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用戶名 要執(zhí)行的命令
每隔30分鐘root執(zhí)行一次updatedb命令:
*/30 * * * * root updatedb
每天早上5點(diǎn)定時(shí)重啟系統(tǒng):
0 5 * * * root reboot
每隔三秒執(zhí)行一次/home/somedir目錄下的scripts.sh腳本:
## For excuting scripts.sh every 3 seconds##on 2014-10-15 */1 * * * * ?/home/somedir/scripts.sh */1 * * * * sleep 3 && ?/home/somedir/scripts.sh */1 * * * * sleep 6 && ?/home/somedir/scripts.sh */1 * * * * sleep 9 && ?/home/somedir/scripts.sh */1 * * * * sleep 12 && ?/home/somedir/scripts.sh */1 * * * * sleep 15 && ?/home/somedir/scripts.sh */1 * * * * sleep 18 && ?/home/somedir/scripts.sh */1 * * * * sleep 21 && ?/home/somedir/scripts.sh */1 * * * * sleep 24 && ?/home/somedir/scripts.sh */1 * * * * sleep 27 && ?/home/somedir/scripts.sh */1 * * * * sleep 30 && ?/home/somedir/scripts.sh */1 * * * * sleep 33 && ?/home/somedir/scripts.sh */1 * * * * sleep 36 && ?/home/somedir/scripts.sh */1 * * * * sleep 39 && ?/home/somedir/scripts.sh */1 * * * * sleep 42 && ?/home/somedir/scripts.sh */1 * * * * sleep 45 && ?/home/somedir/scripts.sh */1 * * * * sleep 48 && ?/home/somedir/scripts.sh */1 * * * * sleep 51 && ?/home/somedir/scripts.sh */1 * * * * sleep 54 && ?/home/somedir/scripts.sh */1 * * * * sleep 57 && ?/home/somedir/scripts.sh
保存生效
#加載任務(wù),使之生效 crontab /etc/crontab #查看任務(wù) crontab -l
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
下面是補(bǔ)充
安裝 crontabs服務(wù)并設(shè)置開機(jī)自啟
yum install crontabs systemctl enable crond (設(shè)為開機(jī)啟動(dòng)) systemctl start crond(啟動(dòng)crond服務(wù)) systemctl status crond (查看狀態(tài))
設(shè)置用戶自定義定時(shí)任務(wù)
vi /etc/crontab
可以看到:
Example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
即:
分鐘(0-59) 小時(shí)(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用戶名 要執(zhí)行的命令
*/30 * * * root /usr/local/mycommand.sh (每天,每30分鐘執(zhí)行一次 mycommand命令)
* 3 * * * root /usr/local/mycommand.sh (每天凌晨三點(diǎn),執(zhí)行命令腳本,PS:這里由于第一個(gè)的分鐘沒有設(shè)置,那么就會(huì)每天凌晨3點(diǎn)的每分鐘都執(zhí)行一次命令)
0 3 * * * root /usr/local/mycommand.sh (這樣就是每天凌晨三點(diǎn)整執(zhí)行一次命令腳本)
*/10 11-13 * * * root /usr/local/mycommand.sh (每天11點(diǎn)到13點(diǎn)之間,每10分鐘執(zhí)行一次命令腳本,這一種用法也很常用)
10-30 * * * * root /usr/local/mycommand.sh (每小時(shí)的10-30分鐘,每分鐘執(zhí)行一次命令腳本,共執(zhí)行20次)
10,30 * * * * * root /usr/local/mycommand.sh (每小時(shí)的10,30分鐘,分別執(zhí)行一次命令腳本,共執(zhí)行2次)
保存生效
加載任務(wù),使之生效:crontab /etc/crontab
查看任務(wù):crontab -l
$ crontab -u 用戶名 -l (列出用戶的定時(shí)任務(wù)列表)
PS:特別注意,crond的任務(wù)計(jì)劃, 有并不會(huì)調(diào)用用戶設(shè)置的環(huán)境變量,它有自己的環(huán)境變量,當(dāng)你用到一些命令時(shí),比如mysqldump等需要環(huán)境變量的命令,手工執(zhí)行腳本時(shí)是正常的,但用crond執(zhí)行的時(shí)候就會(huì)不行,這時(shí)你要么寫完整的絕對(duì)路徑,要么將環(huán)境變量添加到 /etc/crontab 中。
好了,計(jì)劃任務(wù)就是這么簡(jiǎn)單了,但是計(jì)劃任務(wù),執(zhí)行的語(yǔ)句如果是多條,則需要用藥shell腳本,自己先寫一個(gè)shell腳本,然后在計(jì)劃任務(wù)中,執(zhí)行這個(gè)腳本即可。至于shell腳本的寫法, 這里不贅述。
相關(guān)文章
Ubuntu/Debian 自有軟件包構(gòu)建私有源詳解
這篇文章主要介紹了Ubuntu/Debian 自有軟件包構(gòu)建私有源詳解的相關(guān)資料,這里介紹詳細(xì)步驟,需要的朋友可以參考下2016-11-11阿里云服務(wù)器CentOS 6.3下快速安裝部署 LAMP 、vsftpd 環(huán)境的方法
這篇文章主要介紹了阿里云服務(wù)器CentOS 6.3下快速安裝部署 LAMP 、vsftpd 環(huán)境的方法的相關(guān)資料,需要的朋友可以參考下2016-02-02apache2.2和php5.2.17在windows下整合過(guò)程的錯(cuò)誤解決方法
照理來(lái)說(shuō)apache和php的整合應(yīng)該是非常簡(jiǎn)單的,apache下載windows安裝版本后一路next即可完成安裝,php下載解壓版本后直接解壓到指定目錄,然后在apache的配置文件httpd.conf的最后加入如下幾行即可2011-08-08Linux:FTP工具及SSH遠(yuǎn)程連接工具的使用方式
這篇文章主要介紹了Linux:FTP工具及SSH遠(yuǎn)程連接工具的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Linux系統(tǒng)利用cp命令實(shí)現(xiàn)強(qiáng)制覆蓋功能的方法
cp命令是我日常學(xué)習(xí)中經(jīng)常會(huì)遇到的一個(gè)命令,下面這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)利用cp命令實(shí)現(xiàn)強(qiáng)制覆蓋功能的方法,并且給大家簡(jiǎn)單的介紹了cp命令的基礎(chǔ)知識(shí),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11Linux 配置SSH免密登錄 “ssh-keygen”的基本用法
SSH 是目前較可靠,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用 SSH 協(xié)議可以有效防止遠(yuǎn)程管理過(guò)程中的信息泄露問題,這篇文章主要介紹了Linux 配置SSH免密登錄 “ssh-keygen”的基本用法 ,需要的朋友可以參考下2019-06-06ubuntu 設(shè)置靜態(tài)IP的實(shí)現(xiàn)方法
這篇文章主要介紹了ubuntu 靜態(tài)IP的設(shè)定實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2016-10-10Java使用Apache.POI中HSSFWorkbook導(dǎo)出到Excel的實(shí)現(xiàn)方法
這篇文章主要介紹了Java使用Apache.POI中HSSFWorkbook導(dǎo)出到Excel的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04