Executar Shell Script no crontab [RESOLVIDO]

1. Executar Shell Script no crontab [RESOLVIDO]

Wesley Joaquim Fideles
wjf

(usa Debian)

Enviado em 28/04/2017 - 16:05h

Pessoal boa tarde!
Preciso de uma ajuda, ja procurei bastante mais não resolveu...
Estou tentando executar um Script no crontab, mas não consigo.
O script está salvo em /usr/local/bin/mirror-debian.sh
Como eu devo colocar no crontab pra rodar em determinada hora? por exemplo 16:10... só pra testar....



  


2. MELHOR RESPOSTA

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 28/04/2017 - 16:07h

wjf escreveu:

Pessoal boa tarde!
Preciso de uma ajuda, ja procurei bastante mais não resolveu...
Estou tentando executar um Script no crontab, mas não consigo.
O script está salvo em /usr/local/bin/mirror-debian.sh
Como eu devo colocar no crontab pra rodar em determinada hora? por exemplo 16:10... só pra testar....


V se isso te resolve
http://www.vitorbritto.com.br/blog/agendando-tarefas-com-crontab/
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

3. não foi :/

Wesley Joaquim Fideles
wjf

(usa Debian)

Enviado em 29/04/2017 - 07:55h

Também não consegui.... acho que tem algo no meu Script que não roda pelo crontab.... veja meu Script e veja se ajuda:
está em /usr/local/bin/mirror-debian.sh

#!/bin/bash
repo=ftp.br.debian.org
root=:debian
localdir=/var/www/debian/
dists=stable
sections=main,contrib,non-free
arch=i386,amd64
defopt=”-v -p –arch=$arch –host=$repo –root=$root –section=$sections –dist=$dists -e rsync –ignore-release-gpg –postcleanup –getcontents –nosource”
echo -e “n Criando mirror de Debian n”
debmirror $defopt $localdir
#########################################

Eu coloco no crontab como? pelo comando "crontab -e" ou " /etc/crontab"? já tentei pelos dois, estou pelo usuário root, e as permissões está em 755... já dei o comando pra ser executável "chmod +x caminho_do_arquivo" e nada, podem me ajudar?vim


4. Re: Executar Shell Script no crontab [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 29/04/2017 - 16:53h

wjf escreveu:

Também não consegui.... acho que tem algo no meu Script que não roda pelo crontab.... veja meu Script e veja se ajuda:
está em /usr/local/bin/mirror-debian.sh

#!/bin/bash
repo=ftp.br.debian.org
root=:debian
localdir=/var/www/debian/
dists=stable
sections=main,contrib,non-free
arch=i386,amd64
defopt=”-v -p –arch=$arch –host=$repo –root=$root –section=$sections –dist=$dists -e rsync –ignore-release-gpg –postcleanup –getcontents –nosource”
echo -e “n Criando mirror de Debian n”
debmirror $defopt $localdir
#########################################

Eu coloco no crontab como? pelo comando "crontab -e" ou " /etc/crontab"? já tentei pelos dois, estou pelo usuário root, e as permissões está em 755... já dei o comando pra ser executável "chmod +x caminho_do_arquivo" e nada, podem me ajudar?vim



Usando o comando crontab -e, coloca assim para rodar a cada minuto
* * * * * /usr/local/bin/mirror-debian.sh >> /tmp/testeCrontab.tmp

e depois consulta ve se criou ou se tem algum erro com o comando cat /tmp/testeCrontab.tmp, se criou o arquivo a crontab esta funcionando.




5. Consegui de outro jeito

Wesley Joaquim Fideles
wjf

(usa Debian)

Enviado em 30/04/2017 - 14:27h

Williamm, consegui de outro jeito, eu comentei a linha no Script " echo "criando mirror de Debian" " e coloquei na crontab -e:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
59 12 * * * /usr/local/bin/mirror-debian.sh
e rodou, eu sei porque está pra acessar na web local quando roda o script manualmente cria o diretório, e como eu ia rodar automaticamente pelo crontab... pra mim saber eu apaguei, e quando chegou a hora criou.

uma duvida, ele vai começar a fazer download das distros do Debian, e quando rodo manualmente aparece na tela fazendo o download, pelo crontab não é possivel? quando roda não aparece nada cara...
E essa segunda parte >> " /tmp/testeCrontab.tmp" o que seria ?

Muito Obrigado desde já!!!


6. Re: Executar Shell Script no crontab [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 30/04/2017 - 19:37h

wjf escreveu:

Williamm, consegui de outro jeito, eu comentei a linha no Script " echo "criando mirror de Debian" " e coloquei na crontab -e:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
59 12 * * * /usr/local/bin/mirror-debian.sh
e rodou, eu sei porque está pra acessar na web local quando roda o script manualmente cria o diretório, e como eu ia rodar automaticamente pelo crontab... pra mim saber eu apaguei, e quando chegou a hora criou.

uma duvida, ele vai começar a fazer download das distros do Debian, e quando rodo manualmente aparece na tela fazendo o download, pelo crontab não é possivel? quando roda não aparece nada cara...
E essa segunda parte >> " /tmp/testeCrontab.tmp" o que seria ?

Muito Obrigado desde já!!!


O crontab não aceita interação, então comandos como, echo, print, read... só funcionam se forem pré determinados, exemplo do echo já jogando para uma saida, como
 echo "teste" > /dev/null  
vai jogar a saída para /dev/null ou seja para um dispositivo nulo ( lugar nenhum )... ao usar o comando
 >> /tmp/testeCrontab.tmp  
na crontab como mencionei ele vai jogar o resultado da execução para o arquivo /tmp/testeCrontab.tmp, faz um teste, coloca isso e veja o resultado que ficou o arquivo... Não sei se estou totalmente correto, mas tentei explicar com as minhas palavras..





7. Deu certo

Wesley Joaquim Fideles
wjf

(usa Debian)

Enviado em 01/05/2017 - 11:35h

Cara, muito obrigado!!!!

deu certo, entendi o que quis dizer, dei um "cat /tmp/testeCrontab.tmp" e estava lá rodando o script....
agora uma outra duvida, eu poderia colocar em qualquer outro lugar?

ouvi dizer que tem uns arquivo do cron no diretório /etc/ como /cron.daily /cron.hourly /cron.mothly.. e assim em diante, seria nesses arquivos para ser direcionado?

Vou marcar como resolvido, valeu pela ajuda.


8. Re: Executar Shell Script no crontab [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 01/05/2017 - 18:05h

wjf escreveu:

Cara, muito obrigado!!!!

deu certo, entendi o que quis dizer, dei um "cat /tmp/testeCrontab.tmp" e estava lá rodando o script....
agora uma outra duvida, eu poderia colocar em qualquer outro lugar?

ouvi dizer que tem uns arquivo do cron no diretório /etc/ como /cron.daily /cron.hourly /cron.mothly.. e assim em diante, seria nesses arquivos para ser direcionado?

Vou marcar como resolvido, valeu pela ajuda.


Pode jogar o resultado para onde for melhor apenas usar > ( sobrescreve ) ou >> ( para não sobrescrever, apenas adiciona ao conteudo ) e colocar o arquivo que desejas...

Outra dica sobre /cron.daily /cron.hourly /cron.mothly.. encontra aqui.

http://www.hardware.com.br/dicas/agendando-tarefas-rotinas-cron.html

"Para finalizar, dentro do diretório /etc, existe temos quatro agendamentos pré-definidos:

cron.hourly, cron.daily, cron.weekly e cron.montly.

Onde:

cron.hourly: de hora em hora
cron.daily: de dia em dia
cron.weekly: de semana em semana
cron.montly: de mês em mês

Exemplo: Para que nosso script de backup seja executado diariamente, basta copiarmos o script para /etc/cron.daily

# cp /usr/local/bin/backup.sh /etc/cron/daily"








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts