Autor Tópico: Crontab não executa Script  (Lida 7540 vezes)

Offline pentestbox

  • Usuário Ubuntu
  • *
  • Mensagens: 264
    • Ver perfil
Crontab não executa Script
« Online: 14 de Novembro de 2016, 15:22 »
Ola pessoal, estou tentando agendar via crontab para executar um Script de 5 em 5 minutos no sistema, so que o crontab não executa o script, gostaria da ajuda de vcs para resolver o problema, o que fiz foi assim:

$ sudo crontab -e

No arquivo do contrab coloquei

5 * * * * /home/lab/bkp.sh

Fiz dessa maneira e nada acontece, gostaria de saber como fazer o crontab executar  o script, que por sinal é um script simples que faz uma cópia de uns arquivos de um lugar para o outro no mesmo sistema, quando rodo o script separado ele funciona perfeitamente, o problema esta sendo no crontab.
conto com a ajuda de vcs.
Desde já Obrigado.
« Última modificação: 14 de Novembro de 2016, 16:12 por pentestbox »

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re:Crontab não executa Script
« Resposta #1 Online: 15 de Novembro de 2016, 10:31 »
Executar aplicações no cron é um pouco traiçoeiro. Você precisa estar atento pra algumas coisas:
1. Não há gráficos disponíveis.
2. Não há teclado disponível (você não pode fazer entrada de nada, nem de senhas, caso use "su" ou "sudo").
3. O ambiente de execução é reduzidíssimo, então várias vezes você tenta chamar um outro aplicativo e ele simplesmente não está no "path".

Aposto que o que te derrubou foi a armadilha #3. Verifique teu script, se vc não está chamando algum aplicativo que não esteja em /bin:/usr/bin.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline selvaking

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 1.171
  • Parque Anchieta - Rio de Janeiro - RJ
    • Ver perfil
Re:Crontab não executa Script
« Resposta #2 Online: 15 de Novembro de 2016, 11:26 »
Crie o diretório ~/bin do usuário e coloque o script dentro. Este diretório já se encontra no PATH, só falta criar ele.
Abra um terminal como usuário normal (Não root) e execute o comando abaixo.

Código: [Selecionar]
mkdir ~/bin
No seu caso será criada a pasta /home/lab/bin

Mova o script pra dentro dela e modifique o caminho no crontab. O script deve tá marcado pra execução.

Código: [Selecionar]
chmod +x /home/lab/bin/bkp.sh
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049

Offline pentestbox

  • Usuário Ubuntu
  • *
  • Mensagens: 264
    • Ver perfil
Re:Crontab não executa Script
« Resposta #3 Online: 18 de Novembro de 2016, 13:57 »
Executar aplicações no cron é um pouco traiçoeiro. Você precisa estar atento pra algumas coisas:
1. Não há gráficos disponíveis.
2. Não há teclado disponível (você não pode fazer entrada de nada, nem de senhas, caso use "su" ou "sudo").
3. O ambiente de execução é reduzidíssimo, então várias vezes você tenta chamar um outro aplicativo e ele simplesmente não está no "path".

Aposto que o que te derrubou foi a armadilha #3. Verifique teu script, se vc não está chamando algum aplicativo que não esteja em /bin:/usr/bin.

O aplicativo que esta no meu script é o Rsync, ele será usado para fazer as cópias dos meus arquivos para o diretório /var/www/html do apache, acho que o que esta pegando é realmente essa questão do sudo que estou usando, uma vez que o meu usuário não tem permissão de escrever no diretório /var/www/html, então eu pensei que ao utilizar o sudo tendo permissão de root eu conseguiria fazer esse script funcionar no crontab.

o meu script está assim:

#!/bin/bash

rsync=`rsync -avz /home/lab/*.sh /var/www/html`

$rsync


É apenas um script de teste bobo, apenas estou testando pois estou aprendendo shell script, so que me deparei com esse problema do sudo, e por isso quero tentar resolver, pois futuramente em scripts importantes eu precisarei utilizar com as permissões de sudo.

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re:Crontab não executa Script
« Resposta #4 Online: 18 de Novembro de 2016, 14:37 »
Ponha o caminho completo pro "rsync" no comando, deve resolver.

Quanto ao sudo, como eu disse na armadilha #2, não há teclado disponível, entaõ o sudo não pode ler uma senha.
Solução: cadastre o seu usuário pra não precisar de senha no sudo, pra esse comando. Vc usa o comando "visudo" pra editar o arquivo /etc/sudoers (não tente editá-lo diretamente de forma nenhuma!!!), adicione esta linha ao final:

fulano ALL=(ALL) NOPASSWD: /usr/bin/rsync
« Última modificação: 18 de Novembro de 2016, 14:39 por zekkerj »
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline selvaking

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 1.171
  • Parque Anchieta - Rio de Janeiro - RJ
    • Ver perfil
Re:Crontab não executa Script
« Resposta #5 Online: 20 de Novembro de 2016, 10:55 »
Então falta vc colocar no seu crontab o usuário que vai executar o script que no seu caso é o root.

Código: [Selecionar]
5 * * * *   root     /home/lab/bkp.sh
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re:Crontab não executa Script
« Resposta #6 Online: 20 de Novembro de 2016, 20:31 »
Isso não é necessário no crontab local, acionado pelo comando "crontab -e".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline pentestbox

  • Usuário Ubuntu
  • *
  • Mensagens: 264
    • Ver perfil
Re:Crontab não executa Script
« Resposta #7 Online: 29 de Novembro de 2016, 11:15 »
Ole pessoal, acho que consegui resolver, coloquei o caminho completo do rsync no script e parece que agora foi, so que as vezes eu acho que não vai de 5 em 5 minutos, as vezes acho que demora mais tempo, mas enfim vou continuar fazendo mais alguns testes aqui pra ver.

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re:Crontab não executa Script
« Resposta #8 Online: 29 de Novembro de 2016, 12:05 »
Pode ser o tempo pra executar a cópia. Com mais ou menos quantidade de arquivos, vai variar o tempo pra vc perceber alteração no diretório de destino.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D