Crontab + Scripts

1. Crontab + Scripts

Alexandre Cardoso
Alexandr3

(usa CentOS)

Enviado em 14/02/2012 - 14:31h

Boa tarde a todos!
Gostaria de uma ajuda para o seguinte problema:
Tenho dois scripts distintos um para uma coisa e outro para outra, porém, um destes não é executado de jeito algum pelo crontab.
Seu nome é rsync.sh o conteudo é o seguinte:

#Rsync

rsync -vaz --progress 192.168.2.254::meioambiente /hd2/backup/rigesa/meioambiente

Na mão ele roda.

To rodando um FreeBSD


  


2. Re: Crontab + Scripts

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 14/02/2012 - 14:55h

O usuário do Crontab tem permissão para executar o script?
O caminho do script está correto no crontab?



3. Re: Crontab + Scripts

Alexandre Cardoso
Alexandr3

(usa CentOS)

Enviado em 14/02/2012 - 15:07h

Tem permissão sim, é o root, o caminho ta certinho.
00 14 * * * root /usr/local/sbin/rsync.sh

eu tentei varias coisas, como por exemplo:
00 12 * * * exec rsync.sh
30 14 * * * * /usr/local/sbin/rsync.sh > /dev/null
30 14 * * * * /usr/local/sbin/rsync.sh > /dev/tty1
30 14 * * * * /rsync.sh > /dev/tty1
...


4. Re: Crontab + Scripts

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 14/02/2012 - 15:40h

Mas o seu script rsync.sh está em /usr/local/sbin ?
Pois não é um caminho comum que os administradores de sistemas utilizam para inserir scripts.
Pelo que vc está dizendo eu acho que é o caminho.

O crontab que vc criou abaixo irá executar todos os dias às 14:30

30 14 * * * * /usr/local/sbin/rsync.sh

Entre no diretório em que está o rsync.sh e digite pwd, veja se bate mesmo o diretório.


5. Re: Crontab + Scripts

Alexandre Cardoso
Alexandr3

(usa CentOS)

Enviado em 14/02/2012 - 15:52h

Isso, eu ja coloquei ele em /usr/local/script e não funcionou da mesma forma.


6. Re: Crontab + Scripts

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 14/02/2012 - 16:03h

Já tentou dar permissão de execução no script?
chmod 755 rsync.sh


7. Re: Crontab + Scripts

Alexandre Cardoso
Alexandr3

(usa CentOS)

Enviado em 14/02/2012 - 16:53h

Não roda,


8. Re: Crontab + Scripts

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 14/02/2012 - 17:07h

Cara, não sei mais o que fazer.
Da uma olhada no seu /var/mail/root e veja as informações relacionadas ao cron do seu rsync.sh

Outra coisa, pra vc testar enquanto isso, faça uma execução a cada minuto, exemplo:

* * * * * /caminho/rsync.sh




9. Re: Crontab + Scripts

Francisco Raimundo da Silva
chimico

(usa Debian)

Enviado em 14/02/2012 - 17:11h

Eu executo scripts como usuário normal pelo crontab, inclusive estes scripts estão em minha pasta home.
Creio que o mais indicado para dar as permissões seja 'chmod a+x seuscript' e colocar o caminho completo deste no crontab ao invés de chamá-lo apenas pelo seu 'PATH'. Caso não funcione tente colocal '/bin/sh /caminho/do/seu/script' ou /bin/bash.


10. Re: Crontab + Scripts

Alexandre Cardoso
alexandr3

(usa CentOS)

Enviado em 15/02/2012 - 10:01h

Olá chimico, desculpe, não entendi bem, você sugere que eu o seguinte?
* * * * * * /bin/sh /usr/local/sbin/rsync.sh
Se for isso, também não rolou,
at.


11. Adicionar linha

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 15/02/2012 - 11:12h

alexandr3 escreveu:

Olá chimico, desculpe, não entendi bem, você sugere que eu o seguinte?
* * * * * * /bin/sh /usr/local/sbin/rsync.sh
Se for isso, também não rolou,
at.


O que o amigo acima sugeriu foi adicionar a linha:
#!/bin/bash ou #!/bin/sh no inicio de seu script

outra coisa
coloque o caminho completo para o executavel do rsync

/usr/bin/rsync .... 192.168.0.xx:pasta /pasta/outra


Todos script que roda pelo cron precisa do caminho completo
ex:
/sbin/iptables


Se não colocar não ira encontrar o executavel.

Provavelmente este erro vai estar aparecendo no seus logs do cron

Para encontra o caminho correto para o rsync digite:
locate rsync






12. Re: Crontab + Scripts

Francisco Raimundo da Silva
chimico

(usa Debian)

Enviado em 15/02/2012 - 18:06h

@alexandr3
Lendo melhor o tópico ví que você está rodando o script pelo FreeBSD, que salvo engano, usa por padrão o /bin/csh como /bin/sh no sistema e o /bin/csh é um link para /bin/tcsh, então a linha referente ao crontab ficaria assim:

0 16 * * * * /bin/tcsh /usr/local/sbin/rsync.sh

Verifique qual o cabeçalho do seu shell script, este deve ser o mesmo que o shell que está usando, por exemplo, se for #!/bin/csh, deixe como /bin/csh no crontab e por aí vai, o bash por exemplo executa quase tudo, mas estes shell's do mundo BSD tem estas incompatibilidades.

Aqui no meu exemplo o seu script vai executar as 16:00 de todos os dias do mês e da semana, a sequência, pelo menos aqui no Debian é :

minuto hora dia_do_mês mês dia_da_semana comando

Se você deixar um monte de asteriscos não vai executar mesmo ou em teoria, executar o tempo todo.

Não esqueça de 'chmod +x /usr/local/sbin/rsync.sh', este deve ter permissões de execução.

Boa sorte






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts