在工作中需要數(shù)據(jù)庫(kù)在每天零點(diǎn)自動(dòng)備份所以需要建立一個(gè)定時(shí)任務(wù).我選擇在Linux下使用Crontab來添加定時(shí)任務(wù)執(zhí)行shell文件.shell文件有數(shù)據(jù)庫(kù)備份命令.
一. ?Crontab 介紹
crontab命令的功能是在一定的時(shí)間間隔調(diào)度一些命令的執(zhí)行萤厅。
二.查看/etc/crontab文件
vim ?/etc/crontab
三.文件/etc/crontab中每行任務(wù)的描述格式如下:
minute hour day month dayofweek command
? ?minute - 從0到59的整數(shù)
hour - 從0到23的整數(shù)
day - 從1到31的整數(shù) (必須是指定月份的有效日期)
month - 從1到12的整數(shù) (或如Jan或Feb簡(jiǎn)寫的月份)
dayofweek - 從0到7的整數(shù)孽椰,0或7用來描述周日 (或用Sun或Mon簡(jiǎn)寫來表示)
command - 需要執(zhí)行的命令(可用as ls /proc >> /tmp/proc或 執(zhí)行自定義腳本的命令)
root表示以root用戶身份來運(yùn)行
run-parts表示后面跟著的是一個(gè)文件夾装诡,要執(zhí)行的是該文件夾下的所有腳本
對(duì)于以上各語句健田,星號(hào)(*)表示所有可用的值悼尾。例如*在指代month時(shí)表示每月執(zhí)行(需要符合其他限制條件)該命令。
整數(shù)間的連字號(hào)(-)表示整數(shù)列玫锋,例如1-4意思是整數(shù)1,2,3,4
指定數(shù)值由逗號(hào)分開重挑。如:3,4,6,8表示這四個(gè)指定整數(shù)。
符號(hào)“/”指定步進(jìn)設(shè)置帽馋〗练剑“/”表示步進(jìn)值。如0-59/2定義每?jī)煞昼妶?zhí)行一次绽族。步進(jìn)值也可用星號(hào)表示姨涡。如*/3用來運(yùn)行每三個(gè)月份運(yùn)行指定任務(wù)。
以“#”開頭的為注釋行,不會(huì)被執(zhí)行吧慢。
如果一個(gè)cron任務(wù)需要定期而不是按小時(shí),天,周,月來執(zhí)行,則需要添加/etc/cron.d目錄涛漂。這個(gè)目錄下的所有文件和文件/etc/crontab語法相同,查看樣例:
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom scrīpt the first day of every month at 4:10AM
10 4 1 * * /root/scrīpts/backup.sh
除了root用戶之外的用戶可以執(zhí)行crontab配置計(jì)劃任務(wù)检诗。所有用戶定義的crontab存儲(chǔ)在目錄/var/spool/cron下匈仗,任務(wù)會(huì)以創(chuàng)建者的身份被執(zhí)行。要以特定用戶創(chuàng)建一個(gè)crontab逢慌,先以該用戶登錄悠轩,執(zhí)行命令crontab -e,系統(tǒng)會(huì)啟動(dòng)在VISUAL或者EDITOR中指定的的編輯軟件編輯crontab攻泼。文件內(nèi)容與/etc/crontab格式相同火架。示例如下:
0 3 * * * /home/dbbackup/db1backup.sh backup
0 4 * * * /home/dbbackup/db2backup.sh backup
表示每天3點(diǎn)執(zhí)行/home/dbbackup/db1backup.sh backup,4點(diǎn)執(zhí)行/home/dbbackup/db2backup.sh backup忙菠,如果是每五分鐘執(zhí)行一次可改為:
*/5 * * * * /home/dbbackup/db2backup.sh backup
當(dāng)更改的crontab需要保存時(shí)何鸡,文件會(huì)保存在成如下文件/var/spool/cron/username。文件名會(huì)根據(jù)用戶名而不同只搁。
cron服務(wù)會(huì)每分鐘檢查一次/etc/crontab音比、/etc/cron.d/、/var/spool/cron文件下的變更氢惋。如果發(fā)現(xiàn)變化,就會(huì)下載到存儲(chǔ)器中稽犁。因此焰望,即使crontab文件改變了,程序也不需要重新啟動(dòng)已亥。推薦自定義的任務(wù)使用crontab -e命令添加熊赖,退出后用/etc/init.d/crond restart命令重啟crond進(jìn)程,官方文件說不用重啟進(jìn)程虑椎,但我遇到不重啟無法運(yùn)行任務(wù)的情況震鹉。開始不知道/etc/crontab文件中的run-parts是什么意思俱笛,直接把命令按照/etc/crontab的格式加上總是無法運(yùn)行,后來才知道run-parts是指后面跟著的是文件夾传趾。
四.crontab服務(wù)的啟動(dòng)關(guān)閉
sbin/service crond start //啟動(dòng)服務(wù)
/sbin/service crond stop //關(guān)閉服務(wù)
/sbin/service crond restart //重啟服務(wù)
/sbin/service crond reload //重新載入配置
Linux中利用crontab創(chuàng)建計(jì)劃任務(wù) http://www.linuxidc.com//Linux/2013-06/86401.htm
Linux中用crontab例行工作安排 http://www.linuxidc.com//Linux/2013-06/85441.htm
Linux crontab不執(zhí)行問題排查 http://www.linuxidc.com//Linux/2013-06/85432.htm
Ubuntu使用crontab定時(shí)任務(wù) http://www.linuxidc.com//Linux/2013-05/84770.htm
Linux計(jì)劃任務(wù)(at batch crontab anacron) http://www.linuxidc.com//Linux/2013-03/81584.htm
Linux任務(wù)計(jì)劃 (at,crontab) http://www.linuxidc.com/Linux/2015-09/122970.htm
本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2016-02/128323.htm