定時執行docker中的任務

2021-10-05 11:54:20 字數 804 閱讀 6372

用docker的好處很多,但我昨天想要定時執行php的任務時,卻遇到了尷尬。

一般我們用linux定時執行任務,用自帶的crontab就完事了,也非常好用。

但我之前都是使用sh指令碼,執行本地任務,至於怎麼執行docker的任務,還從來沒試過。

首先準備好sh指令碼

比如

echo 'hello' >> debug.log

放在docker容器的乙個目錄中,比如 /var/www/html下

使用指令

docker exec -it php-test sh /var/www/html/test.sh
看能否正確執行sh指令碼(確認是否有執行test.sh指令碼的許可權),debug.log檔案中是否有輸入(確認一下是否有建立debug.log的許可權)

接著,寫入/etc/crontab檔案

shell=/bin/sh

path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command

......

*/2 * * * * ubuntu docker exec php-test sh /var/www/html/test.sh

每隔兩分鐘執行一次php-test容器中的test.sh指令碼(自己按需求改吧)

注意:這裡的docker指令不能帶-it 不然不會執行,需要重點注意

定時執行任務

在windows上,使用configuration task scheduler 任務計畫程式 task scheduler library 任務計畫程式庫 create task.或者 control panel scheduled tasks add a scheduled task.在linu...

定時執行任務

spring中可以通過配置方便的實現週期性定時任務管理,這需要用到以下幾個類 org.springframework.schedu ling.quartz.methodinvokingjobdetailfactorybean 配置需要排程的bean的某個方法 org.springframework....

Linux中任務的定時執行

語法 crontab e username l username r username v username file 說明 crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。u user 是指設定指定 user 的時程表,這個前提是你必須要有其許可...