[BASH] Cron non esegue correttamente uno script

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
marcurs
Prode Principiante
Messaggi: 16
Iscrizione: domenica 4 febbraio 2007, 12:11

[BASH] Cron non esegue correttamente uno script

Messaggio 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.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2889
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: [BASH] Cron non esegue correttamente uno script

Messaggio 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:
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti