2011-02-07 20 views
7

Stack:Crontab Rake Görev mi?

Apache2

Raylar 2.3.8

RedHat Linux

Yakut Kurumsal 1.8.7

Got anlamına gelir benim uygulama kullanıcının crontab aşağıdaki tırmık görev Her 15 dakikada bir veritabanı tablosuna kayıtlar çekin:

*/15 * * * * app_user cd /var/www/apps/my_app/current/ && rake thing:do_stuff RAILS_ENV=production 

Cron daemonun bu görevi cron günlüğünde çalıştırdığını görebiliyorum, ancak kayıtları çekmesi gereken veritabanı tablosu değişmiyor. Bu görev,/var/www/apps/my_app/current dizininde manuel olarak çalıştırdığımda hatasız çalışıyor ve beklediğim gibi kayıtları tabloya çekiyor.

ben .../opt/yakut-işletme yaptığınız Jive belki varsayılan yolunu düşünerek REE kullanarak yansıtmak için crontab Aslında çalıştırmak için bu tırmık görevi nasıl alabilirim

YOL değişkeni sıfırlamak cron ile?

+1

Siz de bu kullanıcı olarak mı çalışıyorsunuz? sudo su app_user, daha sonra cron işinde olduğu gibi EXACTLY komutunu çalıştırın. Böyle çalışırsa cronda çalışmalı. –

cevap

8

Yığın ikili için tam yol kullanmayı deneyin (konsolda which rake çalıştırın ve tırmık yolunu tam yolla değiştirin). Örneğin

, eğer which rake döner aşağıdaki yolu:

/Users/bob/.rvm/gems/ruby-1.9.3-p194/bin/rake 

Sen tırmık görevi çalıştırmak için aşağıdaki komutu kullanmalısınız:

/Users/bob/.rvm/bin/rvm all do bundle exec rake allocator:snapshot 

ve tercihim her Yakut cron işleri için mücevher

Görev cron'da başarısız olup olmadığını nasıl algılar? Başarısız cron e-posta göndermeye çalışır. Böylece, smtp ayarlarınızı kullanmak için postfix'i yapılandırabilirsiniz (örneğin google'dan) ve sisteminizde bu cronjob çalışmasını yapan kullanıcının ev dizinine sadece e-postanızı içeren ~/.forward dosyasını ekleyin.

10
0,15,30,45 * * * * /bin/bash -l -c 'cd /var/www/apps/my_app/current && RAILS_ENV=production bundle exec rake thing:do_stuff --silent'