Pular para o conteúdo

Não consigo fazer com que o Crontab execute meu script de minuto a minuto. [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Não consigo fazer com que o Crontab execute meu script de minuto a minuto. [RESOLVIDO]

Enviado em 18/08/2022 - 10:19h

Olá
Tenho um Script para enviar informações do SpeedTest para o Zabbix, quando eu executo ele na pasta da seguinte forma:

Entro na pasta:
cd /usr/lib/zabbix/externalscripts 


Executo o Scritp:
./speedtest.sh 


Ele me retorna o resultado esperado:
Response from "MEU_IP_ZABBIX": "processed: 1; failed: 0; total: 1; seconds spent: 0.000056"
sent: 1; skipped: 0; total: 1


Porém quando eu crio o
Crontab

*/1 * * * * /usr/lib/zabbix/externalscripts/speedtest.sh 


Ele não executa, já tentei de várias formas.
Adicionando ROOT
Dando permissão

Se alguém souber como me ajudar.

Desde já agradeço

Responder tópico

2. Re: Não consigo fazer com que o Crontab execute meu script de minuto a minuto. [RESOLVIDO]

Melhor resposta

Enviado em 18/08/2022 - 11:44h


Iri0wn escreveu:


Não deu certo, porém ao abrir o log ele retornou como

/bin/sh: 1: /usr/lib/zabbix/eternalscripts/speedtest.sh: not found 


ele não executa o script fora da pasta

sabe como posso fazer isso? tipo.. chamar o script direto do root@#?

Acho que se eu conseguir rodar ele assim e colocar esse comando no crontab ele vai funcionar


Hummm, já é alguma coisa o log.
No seu arquivo speedtest.sh tem a primeira linha indicando #!/bin/sh, senão tiver adicione ele e faz um teste.

No terminal vc está como root? Se sim, qdo vc executa o crontab -e .... ele já vai fazer isso pro root e é executado como root.
Mas se for outro usuário que vc estiver executando o crontab ou quiser indicar o usuário mesmo, vc pode tmb. Colocando ele antes do comando na linha do cron. Tipo assim:
*/1 * * * * root /usr/lib/zabbix/eternalscripts/speedtest.sh > /var/log/speedtest.log 2>&1 


E não esquece de incluir no inicio do seu script o #!/bin/sh.


3. Re: Não consigo fazer com que o Crontab execute meu script de minuto a minuto. [RESOLVIDO]

Enviado em 18/08/2022 - 10:50h

Senão me engano é pq os comandos inseridos no contrab não podem ter saída p/ console.
Tente jogar a saída p/ um arquivo de log ou para /dev/null.

Faz um teste assim:
*/1 * * * * /usr/lib/zabbix/eternalscripts/speedtest.sh > /var/log/speedtest.log 2>&1 


Espero que seja isso e de certo.
Abr.


4. Re: Não consigo fazer com que o Crontab execute meu script de minuto a minuto. [RESOLVIDO]

Enviado em 18/08/2022 - 11:16h

Não deu certo, porém ao abrir o log ele retornou como

/bin/sh: 1: /usr/lib/zabbix/externalscripts/speedtest.sh: not found 


ele não executa o script fora da pasta

sabe como posso fazer isso? tipo.. chamar o script direto do root@#?

Acho que se eu conseguir rodar ele assim e colocar esse comando no crontab ele vai funcionar

5. Re: Não consigo fazer com que o Crontab execute meu script de minuto a minuto. [RESOLVIDO]

Enviado em 18/08/2022 - 11:46h


descobri o problema, era no meu script.
assim eu consigo rodar ele de qualquer diretório e o crontab consegue puxar ele tbm.

#!/bin/bash

SPEEDTESTRESULT=$(speedtest -f json)

zabbix_sender -z "MEU_IP" -s "NOME_DO_HOST" -k speedtestX -o "$SPEEDTESTRESULT"


Obrigado pela ajuda.


Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder