1

私の他のQは、この質問の複製であると彼らが言ったので閉じられました。

残念ながら、その答えはうまくいきませんでした。

基本的に、refresh_sitemapsを自動的に実行するようにWheneverを取得しようとしています。

私のcron.logファイルの興味深い点は、次のようになっています(奇妙な文字に注意してください)。

/usr/bin/ruby: No such file or directory -- °¯Ø (LoadError)
/usr/bin/ruby: No such file or directory -- ؽô (LoadError)
/usr/bin/ruby: No such file or directory -- à=Ù (LoadError)

これは私のschedule.rbの内容です:

env :PATH, '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
set :output, "#{path}/log/cron.log"

every 1.day, :at => '3:00 pm' do
  rake "-s sitemap:refresh"
end

実行するcap refresh_sitemapsと完全に機能しますが、Cronジョブとして単独で実行しようとすると機能しません。

私はルビーへの道が上記の道から正しいと確信しています。これは、SSHで接続して次を実行した場合の結果です。

user@example.com [~]# /usr/local/bin/ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

奇妙なことに、それはまだ/ usr / bin / ruby​​を探しているので、私の「パス」さえ見えないようです。

他の奇妙なことは、実際にそこに何かがあるということです....このsshコマンドによると:

user@example.com [~]# /usr/bin/ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

アップデート

私が実行するcrontab -lと、これが私が得るものです。私が追加した追加のパスに注意してください。これは、この問題について見つけたmediatempleヘルプガイドからのものです(ただし、これに関する他の説明はありませんでした)。

# Begin Whenever generated tasks for: APPNAME
PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
GEM_HOME=/usr/local/lib/ruby/gems/1.9.1
GEM_PATH=/usr/local/lib/ruby/gems/1.9.1
RUBYLIB=/usr/local/lib/ruby/site_ruby/1.9.1

10 17 * * * /bin/bash -l -c 'cd /home/USER/u/apps/APPNAME/releases/20120731204722 && RAILS_ENV=production bundle exec rake -s sitemap:refresh --silent >> /home/USER/u/apps/APPNAME/releases/20120731204722/log/cron.log 2>&1'

# End Whenever generated tasks for: APPNAME

SSHで接続した後、これを単独で実行しようとしましたが、正常に実行されます。

/bin/bash -l -c 'cd /home/USER/u/apps/APPNAME/releases/20120731204722 && RAILS_ENV=production bundle exec rake -s sitemap:refresh --silent

4

1 に答える 1

0

タイトルに迷子の UTF-8 文字がありました (当時はサイトマップにありました)。イライラする;0

于 2012-08-01T17:16:39.527 に答える