linux靈活設定定時任務

2021-10-19 12:54:46 字數 1253 閱讀 1024

linux的定時任務通常使用crontab來設定

crontab命令:

crontab [-u username]    //省略使用者表表示操作當前使用者的crontab

-e (編輯工作表)

-l (列出工作表裡的命令)

-r (刪除工作表)

我們用crontab -e進入當前使用者的工作表編輯,是常見的vim介面。每行是一條命令。

crontab的命令構成為 時間+動作,其時間有分、時、日、月、周五種,操作符有 例項

如果只是簡單的乙個定時任務直接用crontab設定即可,但是實際應用中,有可能任務執行失敗需要重新跑,則可以結合shell指令碼靈活配置。

比如我需要每天定時跑乙個python指令碼,但是這個python指令碼依賴於其他資料的上傳,如果依賴資料上傳時間晚於我的定時時間,那麼就漏掉了今天的結果。因此我寫了乙個shell指令碼先判斷資料夾中是否有前一天的資料(時效是t-1),如果有則執行python指令碼跑結果,如果沒有則過乙個小時再判斷一下。

test.sh:

#!/bin/bash

# 「date -d "yesterday" +%y-%m-%d」 是獲取前一天的日期命令,把日期賦給變數時需要新增$(),否則系統會將該語句當作字串處理

d=$(date -d "yesterday"

+%y-%m-%d)

echo

$d# 因為資料夾名稱以日期命名,所以我要先獲取日期再拼接上資料夾路徑來獲取應該上傳的完整資料路徑

file="/projects/combinetext/combinetextbk$.0.tar"

echo

$file

i=1# 設定迴圈十次

while[$i

-le 10 ]

doif

[-f $file

];then

echo

"檔案存在"

docker exec -i python python /projects/t15.py

break

else

echo

$iecho

"檔案不存在"

sleep 1h

let i++

fidone

然後再設定每天下午兩點跑test.sh:

00 14 * * * /projects/test.sh > /projects/crb.log 2>&1|ts

linux設定定時任務

service crond status如果滅有,需要確認是否安裝 crontab l能識別就說明已經安裝,然後沒有安裝的話進行安裝,步驟如下 1.安裝crontab root centos yum install vixie cron root centos yum install crontab...

LINUX 定時任務設定

為當前使用者建立cron服務 鍵入 crontab e 編輯crontab服務檔案 例如 檔案內容如下 2 bin sh home admin jiaoben buy deletefile.sh 儲存檔案並並退出 2 bin sh home admin jiaoben buy deletefile....

linux設定定時任務

crontab相關服務 service crond status 檢視crontab服務狀態 service crond start 啟動服務 service crond reload 重新載入配置 service crond restart 重啟服務 service crond stop 關閉服務...