Pagina 1 di 1

[BASH] Cron non esegue correttamente uno script

Inviato: martedì 29 aprile 2014, 11:25
da marcurs
Ho un problema a lanciare con cron questo script per la shell:

Codice: Seleziona tutto

#!/bin/sh
# Esegue il test di velocita e scrive il risultato su un file temporaneo
speedtest > /home/utente/temp.log

# Scrivo il file di log vero e proprio
date >> /home/utente/speedtest.log
grep Mbits /home/utente/temp.log >> /home/utente/speedtest.log
echo "" >> /home/utente/speedtest.log

# Rimuovo il file temporaneo
rm /home/utente/temp.log
Se lancio lo script manualmente con il comando "sh script.sh" va tutto bene, ed il risultato è il seguente:

Codice: Seleziona tutto

Tue Apr 29 11:07:53 CEST 2014
Download: 4.84 Mbits/s
Upload: 0.47 Mbits/s
Se invece inserisco il comando in cron

Codice: Seleziona tutto

0,30 * * * * sh /home/utente/script_speed.sh
ottengo:

Codice: Seleziona tutto

Tue Apr 29 11:07:53 CEST 2014
In sostanza lo script lanciato da terminale funziona correttamente, mentre se viene lanciato da cron no.
Avete qualche idea del motivo per cui succede questa cosa? ho anche provato a cambiare sh con bash, ma il risultato non cambia. :muro:
Grazie in anticipo :birra:

EDIT: riguardando a modo lo script il problema dovrebbe essere proprio all'inizio, ovvero nel comando per lo speedtest, perchè non viene neanche generato il file temp.log... non capisco però il motivo per cui da terminale viene eseguito mentre da cron no.

Re: [BASH] Cron non esegue correttamente uno script

Inviato: mercoledì 30 aprile 2014, 16:10
da rai
marcurs ha scritto:EDIT: riguardando a modo lo script il problema dovrebbe essere proprio all'inizio, ovvero nel comando per lo speedtest
infatti: qualsiasi cosa faccia speedtest, devi eseguirlo con /percorso/completo/speedtest perché cron non ha lo stesso environment della tua shell e non sa dove andarlo a cercare
:ciao: