Executar script bash com argumentos e opções no Cron. [RESOLVIDO]

1. Executar script bash com argumentos e opções no Cron. [RESOLVIDO]

Marcelo Caetano
marcelloinfoweb

(usa elementary OS)

Enviado em 21/05/2012 - 22:07h

Olá, por ter solucionado um problema aqui, voltei com outro.

Tenho três scripts .sh:

mysqldump.sh

#!bin/bash
./main.sh "host" "user" "pass" "db"
./main.sh "host" "user" "pass" "db"
./main.sh "host" "user" "pass" "db"
./main.sh "host" "user" "pass" "db"
./main.sh "host" "user" "pass" "db"
./main.sh "host" "user" "pass" "db"
./main.sh "host" "user" "pass" "db"


main.sh

#!bin/bash

#variáveis
#comandos

source ./bkp.sh

#comandos


bkp.sh

#!bin/bash

#variáveis
#comandos para execução do backup



crontab

1 0 * * * /Caminho/para/o-script/*.sh


O problema é, na mão roda perfeito, mas quando programo o crontab não roda. Fiz um log para ver onde estava dando o erro, e constatei que pára o script "mysqldump.sh" antes de ir para a primeira linha "./main.sh ...".

ops.: Os arquivos e pastas estão com permissões 755. O log consegue gravar um arquivo de texto até o ponte que funciona na pasta onde se encontram os scripts, sendo assim, esta tudo certo em relação ao agendamento e as permissões.

o que devo fazer?


  


2. MELHOR RESPOSTA

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 21/05/2012 - 22:58h

dentro dos scripts coloque o caminho completo para outros scripts ;-)

Exemplo dentro do mysqldump.sh, vc chama outro script o main.sh, então coloque o caminho completo até ele, exemplo

/opt/script/main.sh



3. tenta assim

Hudson Moreira Guimaraes dos Santos
hudyfx

(usa Outra)

Enviado em 21/05/2012 - 23:54h

duas coisas, na crontab vc deve passa o usuário que vai executar o script:


1 0 * * * root /Caminho/para/o-script/*.sh


e por fim se não rodar, faça como o amigo ai em cima sugeriu, pessa pro usuario entrar no directório primeiro, eu faria assim:

1 0 * * * root cd /Caminho/para/o-script/; /bin/bash *.sh


ve se funfa...

faloww



4. Re: Executar script bash com argumentos e opções no Cron. [RESOLVIDO]

Marcelo Caetano
marcelloinfoweb

(usa elementary OS)

Enviado em 22/05/2012 - 17:06h

Muito obrigado a todos, consegui.


5. Re: Executar script bash com argumentos e opções no Cron. [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 22/05/2012 - 20:56h

hudyfx escreveu:

duas coisas, na crontab vc deve passa o usuário que vai executar o script:


1 0 * * * root /Caminho/para/o-script/*.sh


e por fim se não rodar, faça como o amigo ai em cima sugeriu, pessa pro usuario entrar no directório primeiro, eu faria assim:

1 0 * * * root cd /Caminho/para/o-script/; /bin/bash *.sh


ve se funfa...

faloww


A dica do @rai3mb está correta, mas só funciona se tiver o usuário como indicado pelo @hudyfx porque no cron geralmente executa comandos com base nas permissões do usuário. Se usar o root tem que funcionar de qualquer forma. Se seu script cria arquivos que outros possam precisar, tome cuidado com as permissões dos arquivos.
Como no teu caso é só para fazer dump do banco, não tem problema.

Outra dica que no meu caso me livrou muitas dores de cabeça foi essa de entrar no diretório antes usando o cd. Sempre que puder tente fazer assim.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts