Linux定時任務(wù)

在工作中需要數(shù)據(jù)庫在每天零點自動備份所以需要建立一個定時任務(wù).我選擇在Linux下使用Crontab來添加定時任務(wù)執(zhí)行shell文件.shell文件有數(shù)據(jù)庫備份命令.

一. ?Crontab 介紹

crontab命令的功能是在一定的時間間隔調(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簡寫的月份)

dayofweek - 從0到7的整數(shù),0或7用來描述周日 (或用Sun或Mon簡寫來表示)

command - 需要執(zhí)行的命令(可用as ls /proc >> /tmp/proc或 執(zhí)行自定義腳本的命令)

root表示以root用戶身份來運行

run-parts表示后面跟著的是一個文件夾,要執(zhí)行的是該文件夾下的所有腳本

對于以上各語句,星號(*)表示所有可用的值。例如*在指代month時表示每月執(zhí)行(需要符合其他限制條件)該命令。

整數(shù)間的連字號(-)表示整數(shù)列,例如1-4意思是整數(shù)1,2,3,4

指定數(shù)值由逗號分開。如:3,4,6,8表示這四個指定整數(shù)。

符號“/”指定步進設(shè)置?!?”表示步進值。如0-59/2定義每兩分鐘執(zhí)行一次。步進值也可用星號表示。如*/3用來運行每三個月份運行指定任務(wù)。

以“#”開頭的為注釋行,不會被執(zhí)行。

如果一個cron任務(wù)需要定期而不是按小時,天,周,月來執(zhí)行,則需要添加/etc/cron.d目錄。這個目錄下的所有文件和文件/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配置計劃任務(wù)。所有用戶定義的crontab存儲在目錄/var/spool/cron下,任務(wù)會以創(chuàng)建者的身份被執(zhí)行。要以特定用戶創(chuàng)建一個crontab,先以該用戶登錄,執(zhí)行命令crontab -e,系統(tǒng)會啟動在VISUAL或者EDITOR中指定的的編輯軟件編輯crontab。文件內(nèi)容與/etc/crontab格式相同。示例如下:

0 3 * * * /home/dbbackup/db1backup.sh backup

0 4 * * * /home/dbbackup/db2backup.sh backup

表示每天3點執(zhí)行/home/dbbackup/db1backup.sh backup,4點執(zhí)行/home/dbbackup/db2backup.sh backup,如果是每五分鐘執(zhí)行一次可改為:

*/5 * * * * /home/dbbackup/db2backup.sh backup

當更改的crontab需要保存時,文件會保存在成如下文件/var/spool/cron/username。文件名會根據(jù)用戶名而不同。

cron服務(wù)會每分鐘檢查一次/etc/crontab、/etc/cron.d/、/var/spool/cron文件下的變更。如果發(fā)現(xiàn)變化,就會下載到存儲器中。因此,即使crontab文件改變了,程序也不需要重新啟動。推薦自定義的任務(wù)使用crontab -e命令添加,退出后用/etc/init.d/crond restart命令重啟crond進程,官方文件說不用重啟進程,但我遇到不重啟無法運行任務(wù)的情況。開始不知道/etc/crontab文件中的run-parts是什么意思,直接把命令按照/etc/crontab的格式加上總是無法運行,后來才知道run-parts是指后面跟著的是文件夾。

四.crontab服務(wù)的啟動關(guān)閉

sbin/service crond start //啟動服務(wù)

/sbin/service crond stop //關(guān)閉服務(wù)

/sbin/service crond restart //重啟服務(wù)

/sbin/service crond reload //重新載入配置

Linux中利用crontab創(chuàng)建計劃任務(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定時任務(wù) http://www.linuxidc.com//Linux/2013-05/84770.htm

Linux計劃任務(wù)(at batch crontab anacron) http://www.linuxidc.com//Linux/2013-03/81584.htm

Linux任務(wù)計劃 (at,crontab) http://www.linuxidc.com/Linux/2015-09/122970.htm

本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2016-02/128323.htm


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容