1
我有一個非常漫長(和凌亂)的crontab(在我的Mac上)。所以我開始通過引入變量來清理它。然後我意識到連接變量(就像在Bash腳本中)在我的crontab中不起作用。這是我有:在crontab中連接變量將不起作用
SHELL=/bin/bash
HOME=/Users/leuchtturm
# [1] Previously had this, but this does not seem to work
# $HOME is not being evaluated? Why?
#
# VIRTUALENV_PYTHON=$HOME/.virtualenvs/py361/bin/python
# Now I have this (elaborated)
VIRTUALENV_PYTHON=/Users/leuchtturm/.virtualenvs/py361/bin/python
# the crontab entry
# Here $HOME is being expanded, but not in the example above [1]
#
*/2 * * * * source $HOME/.config_vars && $VIRTUALENV_PYTHON $HOME/workspace/monitoring/check_server.py
所以在這條線上 VIRTUALENV_PYTHON=$HOME/.virtualenvs/py361/bin/python
變量$HOME
不被評估。我的cron日誌有一個條目說「找不到路徑」。
有人能夠啓發我嗎?謝謝!
那麼我的方法基本上是錯的?我應該把細節和路徑設置放入bash腳本中,並從cronjob中調用該腳本,而不是在crontab中設置路徑等?如果是這樣:腳本應該放在哪裏?在我的Python項目文件夾? – Ugur
特定的* cron *版本可能不會讓你定義變量,但我認爲最可能的。所以使用你定義變量的方法來使* crontab *條目更清晰。只有,不要使用變量來定義(部分)另一個... –
另外,爲了它的價值,我通常定義一個* bash *(shell)腳本來調用* crontab *中的程序。在腳本的頭部,我根據需要定義變量,然後調用程序(在您的情況下爲Python)。這給你一個準備文件,清理它們等的地方。 –