Linux上啟動Cron任務


 

cron是一個Linux下的定時執行工具,無需人工干預,與quartz上的cron表達式稍有不同。由於cronLinux上的內置基礎服務,並不是所有服務器都是默認啟動該服務的,如果沒有啟動可以使用下面的命令:

 

sudo service cron restart/start/stop

 

 

使用命令crontab –l 可以顯示出當前用戶cron服務的詳細內容。

 

使用命令crontab –e 可以打開默認的編輯當前用戶cron服務的編輯器,這里假設使用一個最簡單的shell

 

#!/bin/bash
echo “$(date +%Y-%m-%d\ %H:%M:%S)”

 

 

這個簡單的shell只是會打印出當前時間,這也用於我們檢測該命令是cron服務在什么時間調用的。

 

我們使用crontab –e 將這個命令加入

* * * * * cd /home/...; ./test_cron.sh >> /tmp/test_cron.log 2>&1

  

注意,最好將所有的輸出都定向到指定的文件中(使用2>&1的方式可以將錯誤信息輸出到同樣的流中)。這樣,本shell就會在每分鍾都會執行一次。

 

Crontab中的設置

 

設置的前一部分是對時間的設定,后面一部分是要執行的命令。如果要執行的命令太多,可以把這些命令寫到一個腳本里面,然后在這里直接調用這個腳本就可以了,調用的時候記得寫出命令的完整路徑,因為有些環境變量並不能帶過來。時間的設定有一定的約定,前面五個*號代表五個數字,數字的取值范圍和含義如下:

分鍾 (0-59) 

小時 (0-23) 

日期 (1-31)
月份 (1-12) 

星期 (0-6)//0代表星期天

 

除了數字還有幾個個特殊的符號就是"*""/""-"","*代表所有的取值范圍內的數字,"/"代表每的意思,"*/5"表示每5個單位,"-"代表從某個數字到某個數字,","分開幾個離散的數字。以下舉幾個例子說明問題:

每天早上6

0 6 * * * echo "Good morning." >> /tmp/test.txt

 

每兩個小時:

0 */2 * * * echo "Every 2 hours" >> /tmp/test.txt

 

晚上11點到早上8點之間每兩個小時,早上八點

0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt

 

每個月的4號和每個禮拜的禮拜一到禮拜三的早上11

0 11 4 * 1-3 command line

 

 

11日早上4

0 4 1 1 * command line

 

 

在每次編輯完某個用戶的cron設置后,cron自動在/var/spool/cron下生成一個與此用戶同名的文件,此用戶的cron信息都記錄在這個文件中,這個文件是不可以直接編輯的,只可以用crontab -e 來編輯。

 

cron啟動后每過一份鍾讀一次這個文件,檢查是否要執行里面的命令,因此此文件修改后不需要重新啟動cron服務。

 


免責聲明!

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



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