linux crontab 使用 失效注意事項

2021-07-25 23:56:12 字數 1856 閱讀 4973

crontab 是linux中內嵌的乙個定時執行指令碼的工具,使用這個工具,會為我們省去很多麻煩

但是,我在使用crontab的時候總會遇到一些問題,導致原本可以執行的檔案,在crontab中沒有效果

下面介紹下我的解決方法

1,首先,我執行的是python檔案,例如檔案位址為 /opt/quote_pub/menghuang/xinalng_spider/main.py的python檔案

我們最好建立乙個shell檔案來執行這個python檔案,這樣能更加方便的整合任務,

2,我建立了乙個檔案名字叫/opt/quote_pub/menghuang/xinalng_spider/run.sh的檔案和剛才的python檔案在同一目錄

#!/bin/sh #指定shell執行源

cd /opt/quote_pub/menghuang/xinalng_spider/ #指定shell檔案的執行目錄(這個必須新增)

/usr/local/bin/python main.py >>run.log #特別注意,python一定要用絕對路徑 ,然後執行python檔案,列印run.log檔案,檢視我們是否成功執行

2,現在shell檔案建立好了以後我們開始執行crontab

(1)service crond restart

service crond status

#測試一下crontab是否在執行,正常顯示結果

crond start/running

(2)注意: 一般情況下我們在新增crontab任務的時候都會輸入 crontab -e這句話,

但crontab是不會幫我們指定當前使用者的執行環境的所以你需要先知道你當前的執行使用者名稱,

使用 who 獲取當前使用者名稱:

xin pts/0        2017-01-12 15:24 (---.---.-.---)

xin pts/1        2017-01-10 14:24 (---.---.-.---)

xin pts/2        2017-01-10 14:25 (---.---.-.---)

這是我的結果,我當前的使用者名為

xin,那麼我們新增crontab任務的執行語句就需要改為

crontab -uxin -e

,這樣就會切換到我們當前的執行環境

(3)然後我需要在每晚19點40執行這個檔案,就輸入

40 19 * * *  /bin/sh  /opt/quote_pub/menghuang/xinalng_spider/run.sh

或者我們在測試的時候需要他五分鐘執行一次

*/5 ** * *  /bin/sh  /opt/quote_pub/menghuang/xinalng_spider/run.sh

注意:sh執行命令也需要絕對路徑

(4)最後我們只需要看一下run.log檔案有沒有被建立,就能知道crontab有沒有執行了(在之前的python執行語句,我們重定向了log檔案)

(5)在執行的時候我們通常會碰到一些錯誤

例如:jan 12 16:14:01 test crond[1206]: (tmp.***xsd9gxo) orphan (no passwd entry)

jan 12 16:14:01 test crond[1206]: (tmp.***xrq7zac) orphan (no passwd entry)或者:

jan 1

2 16:10:01 test crond[16188]: (root) cmd (/usr/lib64/sa

/sa1 1 1)

其實有這些錯誤,

crontab

也能成功執行

linux crontab命令使用

cron用法說明 cron 於希臘單詞chronos 意為 時間 是linux系統下乙個自動執行指定任務的程式。例如,你想在每晚睡覺期間建立某些檔案或資料夾的備份,就可以用cron來自動執行。cron服務是linux的內建服務,但它不會開機自動啟動。可以用以下命令啟動和停止服務 sbin servi...

Linux crontab使用詳情

基本格式 command 分 時 日 月 周 命令 第1列表示分鐘1 59 每分鐘用 或者 1表示 第2列表示小時1 23 0表示0點 第3列表示日期1 31 第4列表示月份1 12 第5列標識號星期0 6 0表示星期天 第6列要執行的命令 crontab檔案的一些例子 上面的例子表示每晚的21 3...

Linux Crontab 配置使用

鍵入 crontab e 編輯crontab服務檔案 分 小時 日 月 星期 命令 0 59 0 23 1 31 1 12 0 6 command 取值範圍,0表示週日一般一行對應乙個任務 代表取值範圍內的數字,代表 每 代表從某個數字到某個數字,分開幾個離散的數字 5 ls 指定每小時的第5分鐘執...