2011-03-10 36 views
0

的crontab -l讓我這個克朗的Ubuntu不火的紅寶石方法

0,2,4,6,8,10 * * * * /bin/bash -l -c 'cd /home/ruben/Monitoring ; script/rails runner Ping.check_pings' 

爲什麼這個不行? 如果我嘗試在命令行中運行「cd/home/ruben/Monitoring; script/rails runner Ping.check_pings」。我也嘗試過用「& &」作爲「;」

回答

0

該問題可能與PATH或其他一些環境變量(如GEM_HOME)有關,該變量在您的命令行環境中正確定義,但不在cron環境中定義。

0

crontab不會與用戶的環境一起運行,而是創建它自己的瘦身環境。這包括非常小的PATH -/usr/bin:/ usr/sbin :.和其他一些變數。在這裏看到更多 - http://adminschoice.com/crontab-quick-reference

最簡單的解決方案是添加'。 〜/ .profile',然後再運行rails,或者以其他方式修復路徑。

順便提一下,在嘗試將PATH =/my/path/here; $ PATH添加到crontab之前 - 不允許使用該語法(變量擴展)