crontab是乙個unix/linux系統下的常用定時執行任務
安裝crontab
yum install vixie-cron crontabs //vixie-cron軟體包為cron的主程式,crontabs是用來安裝、解除安裝、列舉程序**的程式
chkcofig crond on //開機自啟動
service crond start //啟動
新增crontab定時任務
crontab -e //開啟crontab檔案,會預設以vi方式開啟
格式minute
hour
dayofmonth
month
dayofweek
command
注釋分鐘
小時日期月份周
命令取值範圍
0-59
0-23
1-31
1-12
0-7(0和7都代表週日)
常用符號
符號注釋
*所有有效的值
,分割開設定多個值
-一段時間範圍
/n隔n長時間
eg:*/3 9-17 1,15,25 * * command //每個月的1、15、15號的9點至17點每隔3分鐘執行一次command命令
檢視crontab定時任務
crontab -l
為防止上次指令碼沒有執行完,下個指令碼重複執行可以使用flock鎖防止程序衝突
使用方法,建立crontab定時任務時,指定flock,eg:
*/1 * * * * flock -xw 10 command //每一分鐘執行一次command,如果上次任務沒有完成等待10s後重試
flock常用引數:-h,--help
-s,--shared 獲取乙個共享鎖
-x,--exclusive 獲取乙個獨佔鎖
-n,--nonblock 沒有立即獲得鎖,直接失敗
-w,--timeout 沒有立即獲得鎖,等待指定時間,單位為秒
-c,--command 在shell中執行乙個單獨的命令
命令1:(不加鎖/加鎖 絕對路徑)
* * * * * /bin/php /home/run.php >> /home/run.log 2>&1
* * * * * flock -xn /tmp/run.lock -c '/bin/php /home/run.php >> /home/run.log 2>&1'
注釋: /temp/run.lock 用於判斷檔案是否已加鎖,一般命名為: filename.lock
/bin/php php可執行檔案的位置
/home/run.php 要執行的php檔案的具體位置,檔名為filename.php
>> 表示將執行php檔案的輸出以追加的方式進行重定向
/home/run.log 執行指令碼產生的日誌檔案的位置,一般命名為filename.log
(同一條命令中最好保持
filename相同)
標準輸入stdin 、標準輸出stdout 、 標準錯誤stderr,對應的系統檔案的檔案描述符為0、1、2
& 等同與,2>&1 表示標準錯誤重定向到標準輸出中
命令2:(不加鎖/加鎖 相對路徑)
* * * * * cd /home; /bin/php run.php >> ./run.log 2>&1
* * * * * cd /home; flock -xn /tmp/run.lock -c '/bin/php run.php >> ./run.log 2>&1'
django 實現定時任務
的首頁頻繁被訪問,為了提公升訪問速度,除了我們之前已經學過的使用快取技術外,還可以使用頁面靜態化技術。頁面靜態化即將動態渲染生成的頁面結果儲存成html檔案,放到靜態檔案伺服器中。使用者訪問的時候訪問的直接是處理好之後的html靜態檔案。對於頁面中屬於每個使用者展示不同資料內容的部分,可以在使用者請...
spring boot 實現定時任務
參考 第一步 編寫乙個 job 類,需要實現 org.quartz.job 介面 import org.quartz.job import org.quartz.jobexecutioncontext import org.quartz.jobexecutionexception public cl...
django實現定時任務
目的 解決執行django專案的時候一起執行自己寫的py檔案 一 類別 linux celery和django crontab外掛程式 windows apscheduler django apscheduler,3.註冊後資料遷移 python manage.py migrateimport ti...