iT邦幫忙

0

crontab執行 python 問題

  • 分享至 

  • xImage

各位大大
我使用crontab -e 執行python script.
我執行
30 15 * * * /usr/bin/python3 /home/creation/python_for_etl/to_server/raw_sys.py

之前也設定過爬蟲的python 檔案都沒有甚麼問題。
但這次我已經試了一整天了 手動執行都會更新但是就是無法讓crontab 幫我執行。
我raw_sys.py 主要是去oracle sql 抓資料灌到Mysql 裡面。
使用 grep CRON /var/log/syslog查看
得到以下結果https://ithelp.ithome.com.tw/upload/images/20220103/20134897PS0aZqORmq.png
目前推測是連線oracle sql的問題
是不是也有可能引用另一個檔案的問題?這個檔案有引用另一個檔案的函數式
請問大大們還有可能是甚麼樣的問題嗎?

看更多先前的討論...收起先前的討論...
huahualiu iT邦新手 2 級 ‧ 2022-01-03 17:27:12 檢舉
那你直接在 Linux cmd 執行正常嗎?
Ascetic iT邦新手 5 級 ‧ 2022-01-03 18:12:55 檢舉
正常!
手動跑沒有問題
我剛剛看那個var/mail/root 的訊息是
.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help
這個問題。
我爬文調整了,手動可以執行但crontab吃不到
還不知道怎麼辦
obarisk iT邦研究生 2 級 ‧ 2022-01-04 08:38:26 檢舉
root 不是指令吧...
Ascetic iT邦新手 5 級 ‧ 2022-01-04 09:05:15 檢舉
手誤 刪除後也沒有改變
我以為那個是用甚麼身分執行 中間有空格
Ascetic iT邦新手 5 級 ‧ 2022-01-04 10:16:25 檢舉
Dear All
我搞定了
* * * * * env > /tmp/env.output
vim /tmp/env.output
去查看 crontab 和手動的環境差異去調正
THX~!!!
what0208 iT邦新手 5 級 ‧ 2022-12-22 08:35:04 檢舉
請問怎麼查看crontab和手動的環境不一樣呢?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
koro_michael
iT邦新手 2 級 ‧ 2022-01-03 17:49:47
30 15 * * * root cd /home/creation/python_for_etl/to_server/ && /usr/bin/python3 raw_sys.py
1
海綿寶寶
iT邦大神 1 級 ‧ 2022-01-03 18:45:37

30 15 * * * root /usr/bin/python3 /home/creation/python_for_etl/to_server/raw_sys.py

root 改成

手動可以執行但crontab吃不到

「手動可以執行」的帳號試試看

如果可以
就是「不同帳號有不同的 PATH」

#!//usr/bin/env python3

可以使用 env 放在shebang, 帶入環境如 path 等,然後接 python或其他語言直譯器.
或者在 前面先去呼叫 .profile 這些.

我要發表回答

立即登入回答