[英]Crontab jobs schedule
我對Unix系統很陌生。 我正在嘗試在crontab中安排一個python作業,如下所示;
42 15 18 4 * absolute_path_where_python_is_install absolute_path_to_python_script > absolute_path_to_output_log_file
這什么都不做:沒有錯誤,沒有輸出但是,當我手動運行下面的代碼時,它可以正常工作
absolute_path_where_python_is_install absolute_path_to_python_script > absolute_path_to_output_log_file
有人可以幫我確定我所缺少的嗎?
提前致謝。
要調試的幾件事:
1.)確保crontab正在運行。 加
* * * * * date >> /tmp/ping
並檢查該文件以確保守護程序按預期工作。
2.)在運行時檢查腳本中的錯誤。 現在,您僅捕獲標准輸出。 捕獲stderr,看看是否可以捕獲錯誤消息
* * * * * python script.py > script.log 2>&1
添加2>&1
是重定向,它將文件描述符2(stderr)重定向到文件描述符1(stdout),該文件描述符1發送到日志文件,這意味着stdout和stderr都將最終出現在日志文件中。
3.)驗證環境是否在運行時符合預期:
* * * * * env | sort > /tmp/env_in_cron
然后運行
env | sort > /tmp/env_at_runtime
sdiff /tmp/env_at_runtme /tmp/env_in_cron
並查看您是否需要的不是它們(請注意環境的不同)。 如果您缺少某些東西,可以
a。)添加單個參數
* * * * * PYTHONPATH=/python/lib/path python python-script.py > python-script.log
b。)或僅提供完整的環境。
* * * * * . /home/user/.profile && python python-script.py > python-script.log
假設您要通過crontab設置cron,
如果您不需要任何特殊的python軟件包
* * * * * python /path/to/file.py
從您的virtualenv運行它
* * * * * /path/to/env/bin/python /path/to/file.py
如果需要設置cron間隔的幫助,請嘗試https://crontab.guru 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.