Como chamar o perl do crontab?

1

Eu posso executar esse comando bem no console SSH da hospedagem compartilhada do meu servidor Rackservers:

cd /home/myaccount/public_html/whatever; perl -w 
-I/home/myaccount/public_html/whatever rss2txt.pl http://whatever.com/feed

Mas quando eu digito o mesmo comando que um cron job, recebo:

Can't locate XML/RSS.pm in @INC (@INC contains: /home/myaccount/public_html/whatever /usr/local/lib/perl5/5.8.8/x86_64-linux /usr/local/lib/perl5/5.8.8 /usr/local/lib/perl5/site_perl/5.8.8/x86_64-linux /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl . .) at rss2txt.pl line 21. BEGIN failed--compilation aborted at rss2txt.pl line 21.

Apesar do fato de que o RSS.pm está bem próximo a ele no mesmo diretório ( /home/myaccount/public_html/whatever ), e ele tem esse caminho no @INC, e eu fiz um cd para a pasta correta apenas no caso, ainda whinges.

Tendo em mente que é na hospedagem compartilhada, por isso não posso alterar as configurações globais, como posso convencer o perl a procurar por RSS.pm em /home/myaccount/public_html/whatever ?

Não tenho certeza se é relevante, mas aqui está o rss2txt.pl: link

Ramruma sugeriu transformar isso em um shell script (abaixo). Incluo minha tentativa aqui porque os comentários não podem ser multilinhas:

#!/bin/bash
PERL5LIB=$HOME/public_html/whatever
PATH=$PATH;$HOME/public_html/whatever
cd $HOME/public_html/whatever
perl -w -I$HOME/public_html/whatever rss2txt.pl http://whatever.com/feed

Apesar de adicionar a pasta a PERL5LIB, PATH e @INC, este script de shell nem funciona no console SSH. Então, se pudermos fazer esse script funcionar, acho que teremos o problema resolvido.

    
por harvest316 25.05.2012 / 13:50

2 respostas

4

Escreva um shellscript que execute o comando depois de definir qualquer variável de ambiente apropriada.

    
por 25.05.2012 / 13:58
4

você pode adicionar o diretório local à variável de ambiente PERL5LIB no topo do seu script cron, como assim;

PERL5LIB=/home/myaccount/public_html/whatever:.
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

52 * * * *  /usr/bin/perl -w -I/home/myaccount/public_html/whatever/rss2txt.pl http://whatever.com/feed
    
por 25.05.2012 / 14:37