2011-02-16 2 views
1
0 0,2,4,6,8,10,12,14,16,18,20,22 * * * /bin/bash -l -c 'cd /var/www/rails/xxx/releases/20110105175853 && RAILS_ENV=production rake ts:rebuild --silent' 

salut, les gars. c'est une tâche crontab générée par n'importe quand. il reconstruit l'index de sphinx. il ne fonctionne pas lorsqu'il est exécuté en tant que tâche crontab, sans erreur dans le journal/var/log/cron. mais cela fonctionne quand j'exécute la commande manuellement.rake ts: la reconstruction ne fonctionne pas comme une tâche crontab

quelqu'un peut-il aider? Merci beaucoup.

+0

obtenir toute la chaîne s'échappant correct pour rendre cron heureux est une douleur. Je suggère de prendre votre runline bash et en faire un petit script bash. Ensuite, vous pouvez simplement mettre cette ligne simple dans votre fichier crontab. –

Répondre

2

Votre tâche cron semble un peu bizarre pour moi. Je ne suis pas sûr que vous voulez appeler ts: recréer tout le temps, vous avez seulement besoin de recréer si votre serveur est redémarré, pour mettre à jour l'index que vous venez d'exécuter ts: index, ci-dessous est la tâche cron que j'utilise pour mes rails rafraîchit l'index du sphinx toutes les 5 minutes.

si vous utilisez la crontab utilisateur cela devrait fonctionner:

*/5 * * * * cd /home/appuser/rails-app; RAILS_ENV=production rake ts:index >> /dev/null 

si votre mettre vos crons en /etc/cron.d/ vous devrez ajouter le nom d'utilisateur, comme ceci:

*/5 * * * * appuser cd /home/appuser/rails-app; RAILS_ENV=production rake ts:index >> /dev/null 

Ces paramètres sont pour une boîte Ubuntu, mais devraient fonctionner avec la plupart des distributions Linux.

Espérons que cela aide.

Questions connexes