Linux Crontab 定時任務 命令詳解


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

一.  Crontab 介紹

  
        crontab命令的功能是在一定的時間間隔調度一些命令的執行。
二.查看/etc/crontab文件
    vim  /etc/crontab
 
 
 三.文件/etc/crontab中每行任務的描述格式如下: 
 
    minute hour day month dayofweek command
 
    minute - 從0到59的整數 
    hour - 從0到23的整數 
    day - 從1到31的整數 (必須是指定月份的有效日期)
    month - 從1到12的整數 (或如Jan或Feb簡寫的月份)
    dayofweek - 從0到7的整數,0或7用來描述周日 (或用Sun或Mon簡寫來表示)
    command - 需要執行的命令(可用as ls /proc >> /tmp/proc或 執行自定義腳本的命令) 
 
    root表示以root用戶身份來運行
    run-parts表示后面跟着的是一個文件夾,要執行的是該文件夾下的所有腳本
 
    對於以上各語句,星號(*)表示所有可用的值。例如*在指代month時表示每月執行(需要符合其他限制條件)該命令。 
    整數間的連字號(-)表示整數列,例如1-4意思是整數1,2,3,4
    指定數值由逗號分開。如:3,4,6,8表示這四個指定整數。
    符號“/”指定步進設置。“/<interger>”表示步進值。如0-59/2定義每兩分鍾執行一次。步進值也可用星號表示。如*/3用來運行每三個月份運行指定任務。
 
    以“#”開頭的為注釋行,不會被執行。
 
    如果一個cron任務需要定期而不是按小時,天,周,月來執行,則需要添加/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用戶之外的用戶可以執行crontab配置計划任務。所有用戶定義的crontab存儲在目錄/var/spool/cron下,任務會以創建者的身份被執行。要以特定用戶創建一個crontab,先以該用戶登錄,執行命令crontab -e,系統會啟動在VISUAL或者EDITOR中指定的的編輯軟件編輯crontab。文件內容與/etc/crontab格式相同。示例如下:
 
0 3 * * * /home/dbbackup/db1backup.sh backup
0 4 * * * /home/dbbackup/db2backup.sh backup
 
    表示每天3點執行/home/dbbackup/db1backup.sh backup,4點執行/home/dbbackup/db2backup.sh backup,如果是每五分鍾執行一次可改為:
 
*/5 * * * * /home/dbbackup/db2backup.sh backup
 
    當更改的crontab需要保存時,文件會保存在成如下文件/var/spool/cron/username。文件名會根據用戶名而不同。
 
    cron服務會每分鍾檢查一次/etc/crontab、/etc/cron.d/、/var/spool/cron文件下的變更。如果發現變化,就會下載到存儲器中。因此,即使crontab文件改變了,程序也不需要重新啟動。推薦自定義的任務使用crontab -e命令添加,退出后用/etc/init.d/crond restart命令重啟crond進程,官方文件說不用重啟進程,但我遇到不重啟無法運行任務的情況。開始不知道/etc/crontab文件中的run-parts是什么意思,直接把命令按照/etc/crontab的格式加上總是無法運行,后來才知道run-parts是指后面跟着的是文件夾。
 四.crontab服務的啟動關閉
sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM