[問題] python-crontab無法執行

看板Linux作者 (曙光)時間3年前 (2021/06/21 15:57), 3年前編輯推噓5(5026)
留言31則, 5人參與, 最新討論串1/1
各位前輩好,想請問各位前輩關於python-crontab無法執行問題,我有一個python檔,當 我直接執行時,都能夠順利執行,如下圖: https://i.imgur.com/NRXbrhM.jpg
然而當我使用用python所寫的crontab時,執行時卻沒有任何反應,如下圖 Python程式碼: https://i.imgur.com/7ipc2S4.jpg
運行結果: https://i.imgur.com/CetdhLY.jpg
發現程式碼本身沒錯誤,但卻沒有任何反應,也有去查了crontab的例行排程,也確定有 輸入進去 https://i.imgur.com/0KCW8AR.jpg
不知道出現了什麼問題,還請各位前輩指導 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.32.93 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1624262261.A.39F.html

06/21 16:13, 3年前 , 1F
所謂[反應]是指什麼? 如果是指輸出,去信箱查一下看看
06/21 16:13, 1F
b大您好,想請問您是說這個嗎 https://i.imgur.com/22XnwcG.jpg
我改用這個指令後,有查到,如圖: https://i.imgur.com/MqAebbP.jpg
https://i.imgur.com/wAolNLO.jpg
※ 編輯: asd24693120 (218.164.12.247 臺灣), 06/21/2021 18:00:07

06/21 18:07, 3年前 , 2F
man cron 8 裏面有說, crontab的owner(一般是root)的信箱
06/21 18:07, 2F

06/21 18:08, 3年前 , 3F
一般cron job是不產生輸出的,有需要也是自己開個檔寫資料
06/21 18:08, 3F

06/21 18:09, 3年前 , 4F
你後兩個圖是cron有執行你的job的log,不是你程式的輸出
06/21 18:09, 4F

06/21 18:12, 3年前 , 5F
沒用過python,這輸出很像java的log4j之類的格式,看一下是
06/21 18:12, 5F

06/21 18:12, 3年前 , 6F
否有相關設定檔可指定log輸出到你指定的路徑而非標準輸出
06/21 18:12, 6F

06/21 18:13, 3年前 , 7F
,因為交談式(在終端機視窗下)執行標準輸出是終端機,但被
06/21 18:13, 7F

06/21 18:14, 3年前 , 8F
丟到背景執行標準輸出就不一定(cron則是接受輸出後轉寄為
06/21 18:14, 8F

06/21 18:14, 3年前 , 9F
mail),所以一般不輸出到標準輸出,而是輸出到自訂檔案
06/21 18:14, 9F

06/21 18:16, 3年前 , 10F
^背景執行時
06/21 18:16, 10F
b大對不起,我有一點看不懂您的意思,我對ubuntu沒有到很熟,真的非常抱歉

06/21 18:45, 3年前 , 11F
命令改一下 python xxx.py > /path/xxx.log 2>&1 這方式
06/21 18:45, 11F

06/21 18:45, 3年前 , 12F
然後看輸出的 log 裡面顯示什麼資訊提供除錯
06/21 18:45, 12F
※ 編輯: asd24693120 (218.164.12.247 臺灣), 06/21/2021 21:33:25 謝謝k大的建議,這樣就馬上顯示出問題在哪了

06/21 23:56, 3年前 , 13F
我看了訊息內容覺得有點印象,a了一下你的id,果然是之前有
06/21 23:56, 13F

06/21 23:56, 3年前 , 14F
回覆驅動之類問題,只能說先用k大提的方式先應付,最好還是
06/21 23:56, 14F

06/21 23:57, 3年前 , 15F
把工作環境有個初步認識會比較好,不然可能會有解不完的問
06/21 23:57, 15F

06/21 23:58, 3年前 , 16F
題,而問題的共通點都是因為對工作環境不熟悉
06/21 23:58, 16F
對的,真的很謝謝b大還特別去看我之前發的文,我確實對ubuntu還沒有很熟悉,這部分 我會再回去加強,真的很謝謝您

06/22 12:35, 3年前 , 17F
我猜大概是chmod問題...
06/22 12:35, 17F

06/22 12:35, 3年前 , 18F
chmod 644?
06/22 12:35, 18F

06/22 13:37, 3年前 , 19F
他的py腳本是叫用python執行,照道理不是mode問題.要說也
06/22 13:37, 19F

06/22 13:38, 3年前 , 20F
是python不在cron找尋命令的路徑中,我不太確定cron會不會
06/22 13:38, 20F

06/22 13:38, 3年前 , 21F
參考它自己的PATH變數,不過python用全路徑是好建議
06/22 13:38, 21F
想請問b大說的全路徑是指絕對路徑嗎,要把ubuntu預設的python在哪個位置也打出來是 嗎?

06/22 22:26, 3年前 , 22F
你crontab前面寫錯了,五個都*是什麼時候要他執行?
06/22 22:26, 22F
回ba大,這部分我一開始也覺得很奇怪,但是每1分鐘執行好像確實就是這樣,我有改成 兩分鐘,就會顯示成/*2這樣了 ※ 編輯: asd24693120 (218.164.12.247 臺灣), 06/22/2021 23:12:37

06/22 23:19, 3年前 , 23F
我所謂全路徑是full path也就是你說的絕對路徑
06/22 23:19, 23F

06/22 23:21, 3年前 , 24F
5個星是每分鐘沒錯, *代表first-last,在分鐘位置就每分鐘
06/22 23:21, 24F

06/23 01:47, 3年前 , 25F
那抱歉是我錯了,那這樣,你把which python的結果
06/23 01:47, 25F

06/23 01:48, 3年前 , 26F
替換到你crontab 那行python 那邊試試看
06/23 01:48, 26F

06/23 01:49, 3年前 , 27F
你跑程式的時候用了sudo, 也就是root在跑,
06/23 01:49, 27F

06/23 01:49, 3年前 , 28F
你應該要知道root user執行python用的是哪個python
06/23 01:49, 28F

06/23 01:50, 3年前 , 29F
然後加在crontab裏面,應該就會有機會跑對了
06/23 01:50, 29F

06/23 01:54, 3年前 , 30F
就是crontab前面改成* * * * * /usr/bin/python $filepy
06/23 01:54, 30F

07/11 23:39, , 31F
用絕對路徑 包含py檔內有引用的其它檔
07/11 23:39, 31F
文章代碼(AID): #1Wq4PrEV (Linux)
文章代碼(AID): #1Wq4PrEV (Linux)