O WP-CLI não é executado a partir do cronjob

3

Eu fiz um script bash que usa o WP-CLI e foi criado para funcionar a partir de um cronjob. Ele roda bem a partir do SSH, mas falha quando executado através do cron. Durante a depuração, descobri que era a parte do WP-CLI que não estava em execução. Não tem saída alguma.

Eu peguei apenas a parte WP-CLI do script e a testei. Eu confirmei que o WP-CLI é de fato o problema:

/home/username/script/test.sh

cd /var/www/domain.com/ && wp post create --post-title="test" post-content="testing" --post-status=future

Veja um exemplo do cronjob que foi adicionado via crontab -e da conta do usuário: (definido para ser executado a cada minuto para fins de teste)

*/1 * * * * sh /home/username/script/test.sh

O script é executado perfeitamente se for executado a partir do SSH, mas quando executado a partir do cron, ele não terá saída. Eu tentei adicionar | mail -s [email protected] à entrada do cronjob. Ele envia a saída para o meu email, mas não há saída para o comando wp-cli. Eu também tentei adicionar meu nome de usuário à entrada do cronjob entre os dados de hora e o comando para tentar certificar-se de que estava sendo executado como meu usuário. Além disso, eu tentei editar o script bash e alterá-lo para mail -s "cool story bro" [email protected] e que funcionou bem, ele apenas ignora completamente o WP-CLI.

Estou procurando a resposta há cerca de 12 horas. Recentemente, encontrei essa resposta para a pergunta de outra pessoa, o que acho que pode ajudar, mas não sei como implementá-la. link

Acabei de encontrar essa resposta para a pergunta de outra pessoa, e parece ser a maneira de implementar a resposta da outra pessoa, mas não funcionou. link Eu usei exatamente o que ele postou.

Isso está sendo executado em um servidor Ubuntu atualizado, a propósito.

Por favor, explique qual é o problema e como corrigi-lo. Ou apenas se você souber alguma coisa sobre isso, comentar ou algo assim, eu estou muito desesperado no momento.

    
por cycron 26.12.2014 / 03:20

1 resposta

1

Como a resposta à minha pergunta foi postada como um comentário em vez de uma resposta, vou respondê-la para ajudar outras pessoas a encontrar a resposta para a pergunta mais fácil.

De acordo com a recomendação de Cyrus, alterei o test.sh acima para:

cd /var/www/domain.com/ && /usr/local/bin/wp post create --post-title="test" post-content="testing" --post-status=future

A inclusão do caminho completo resolveu o problema. No entanto, não entendo por que um script executado a partir de um cronjob de username seria executado de forma diferente do que se fosse executado a partir do SSH como o mesmo usuário.

    
por 01.01.2015 / 00:55

Tags