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

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

Arthur Irion Moreira
Iri0wn

(usa Ubuntu)

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


  


2. MELHOR RESPOSTA

Eduardo
vchacal

(usa Debian)

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]

Eduardo
vchacal

(usa Debian)

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]

Arthur Irion Moreira
Iri0wn

(usa Ubuntu)

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]

Arthur Irion Moreira
Iri0wn

(usa Ubuntu)

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.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts