Executar comando por shell script [RESOLVIDO]

1. Executar comando por shell script [RESOLVIDO]

Michael
Darkbyte

(usa Outra)

Enviado em 27/06/2022 - 14:19h

Pessoal boa tarde, eu estou tendo dificuldade pra executar uma shellscript agendado pelo pelo cron.

Meu cron esta assim:
* * * * * /scripts/adso/desliga-primario.sh 
(coloquei pra executar a cada minuto so para teste).

Meu desliga-primario.sh esta assim:
#!/bin/bash
echo "Esta executando" > /scripts/adso/resultado.txt
ssh [email protected] '/usr/sbin/shutdown -h now'

A linha 2 com o "echo" eu coloquei para perceber se estava sendo executado, e de fato ele escreve "Esta executando" no arquivo resultado.txt, mas a linha 3 nao executa.

Eu ja configurei as chaves ssh pra conexao sem senha. O que esta errado nisso tudo?


  


2. Re: Executar comando por shell script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/06/2022 - 16:58h


Darkbyte escreveu:

Pessoal boa tarde, eu estou tendo dificuldade pra executar uma shellscript agendado pelo pelo cron.

Meu cron esta assim:
* * * * * /scripts/adso/desliga-primario.sh 
(coloquei pra executar a cada minuto so para teste).

Meu desliga-primario.sh esta assim:
#!/bin/bash
echo "Esta executando" > /scripts/adso/resultado.txt
ssh [email protected] '/usr/sbin/shutdown -h now'

A linha 2 com o "echo" eu coloquei para perceber se estava sendo executado, e de fato ele escreve "Esta executando" no arquivo resultado.txt, mas a linha 3 nao executa.

Eu ja configurei as chaves ssh pra conexao sem senha. O que esta errado nisso tudo?

Coloque o caminho completo do ssh,
assim como fez no shutdown


______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________



3. Re: Executar comando por shell script [RESOLVIDO]

Michael
Darkbyte

(usa Outra)

Enviado em 28/06/2022 - 10:35h

Coloquei o caminho completo do ssh
#!/bin/bash
echo "Esta executando" > /scripts/adso/resultado.txt
/bin/ssh [email protected] '/usr/sbin/shutdown -h now'


E não deu certo, se eu executar manualmente o script ./desliga-primario.sh ele executa e funciona normalmente, mas quando eu peço pra executar pelo cron não aceita.


4. Re: Executar comando por shell script

Buckminster
Buckminster

(usa Debian)

Enviado em 28/06/2022 - 11:33h

Darkbyte escreveu:

Coloquei o caminho completo do ssh
#!/bin/bash
echo "Esta executando" > /scripts/adso/resultado.txt
/bin/ssh [email protected] '/usr/sbin/shutdown -h now'


E não deu certo, se eu executar manualmente o script ./desliga-primario.sh ele executa e funciona normalmente, mas quando eu peço pra executar pelo cron não aceita.


Tenta assim:
#!/bin/bash
echo "Esta executando" > /scripts/adso/resultado.txt
/bin/ssh [email protected] /bin/sh '/usr/sbin/shutdown -h now'

Ou no lugar de /bin/sh coloque /bin/bash ou outro, depende do shell utilizado pelo teu sistema.


________________________________________________
Always listen the Buck!
Sanou tua dúvida, resolveu teu problema?
Então marque como Resolvido e escolha a Melhor Resposta.



5. Re: Executar comando por shell script

Michael
Darkbyte

(usa Outra)

Enviado em 28/06/2022 - 16:50h

Nada feito, eu nao faço ideia do que pode ser.
se eu escrever o comando diretamente, funciona.
se eu executo o arquivo sh, funciona.
pelo cron não.


6. Re: Executar comando por shell script

rafael
ogro33

(usa Debian)

Enviado em 28/06/2022 - 18:10h

Provavelmente não é isso, mas tenta dar um chmod 777 no arquivo, só pra ver se não tem algo relacionado a permissão de execução.



7. Re: Executar comando por shell script [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 29/06/2022 - 08:44h

Tenta assim dentro do script:
ssh -t [email protected] 'sudo shutdown -h now'


________________________________________________
Always listen the Buck!
Sanou tua dúvida, resolveu teu problema?
Então marque como Resolvido e escolha a Melhor Resposta.



8. Re: Executar comando por shell script

Michael
Darkbyte

(usa Outra)

Enviado em 01/07/2022 - 10:18h

Pessoal depois de quse desistir conseguir resolver:

Debugging
Descobri pelo YouTube que podemos usar o argumento -vvv para debugar a conexao SSH e poder analisar o ponto que existe a falha. Eu percebi que a na conexão, o computador cliente buscava a chave privada padrão na hora da homologação com o nome id_rsa e quando criei as chaves assincronas, eu usei o argumento -f para usar outro nome e não sobreescrever a id_rsa que já existia.

Eu sou leigo e gostaria que alguem me tirasse esta dúvida:

1- Nós devemos criar um par de chaves para cada conexão em especifico. (e como faria o apontamento da chave em especifico para isso).
OU
2- Devemos criar um par de chaves único e usar para todas as conexões sem destinção.

Shell script
Já que o erro estava na troca de chaves, o seguinte script a baixo foi suficiente para atender a demanda (obrigado a todos que ajudaram).
#!/bin/bash
ssh [email protected] '/usr/sbin/shutdown -h now'







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts