簡體   English   中英

Crontab作業時間表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM