Escreva um shellscript que execute o comando depois de definir qualquer variável de ambiente apropriada.
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.
Escreva um shellscript que execute o comando depois de definir qualquer variável de ambiente apropriada.
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