的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」。我也嘗試過用「& &」作爲「;」
的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」。我也嘗試過用「& &」作爲「;」
該問題可能與PATH或其他一些環境變量(如GEM_HOME)有關,該變量在您的命令行環境中正確定義,但不在cron環境中定義。
crontab不會與用戶的環境一起運行,而是創建它自己的瘦身環境。這包括非常小的PATH -/usr/bin:/ usr/sbin :.和其他一些變數。在這裏看到更多 - http://adminschoice.com/crontab-quick-reference
最簡單的解決方案是添加'。 〜/ .profile',然後再運行rails,或者以其他方式修復路徑。
順便提一下,在嘗試將PATH =/my/path/here; $ PATH添加到crontab之前 - 不允許使用該語法(變量擴展)