Esecuzione giornaliera di uno script

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
fla.odo
Prode Principiante
Messaggi: 25
Iscrizione: martedì 3 giugno 2008, 17:16
Desktop: ubuntu
Distribuzione: Ubuntu 12.04 x86_64
Località: Pordenone

Esecuzione giornaliera di uno script

Messaggio da fla.odo »

Buongiorno a tutti, ho realizzato un semplice script per eseguire un backup con grsync:

Codice: Seleziona tutto

#!/bin/bash

echo "Sincronizzazione avviata il: "`date` >> "/home/flavio/Ubuntu One/rsync_log"

gvfs-mount smb://admin@giganas/public

sleep 5

rsync -r -t -v --delete -i -s "/media/Dati/" "/home/flavio/.gvfs/public su giganas" >> "/home/flavio/Ubuntu One/rsync_log"

gvfs-mount -u smb://admin@giganas/public

echo "Sincronizzazione conclusa il: "`date` >> "/home/flavio/Ubuntu One/rsync_log"

exit
Questo script se eseguito da terminale funziona perfettamente, ma se inserito all'interno di "cron daily" viene eseguito ma non avviene nessuna azione da parte del programma grsync, viene solamente aggiornato il file "rsync_log"
Come posso risolvere?
grazie a tutti!
f4bry90
Prode Principiante
Messaggi: 213
Iscrizione: domenica 3 gennaio 2010, 22:08
Desktop: Xfce
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Pescara

Re: Esecuzione giornaliera di uno script

Messaggio da f4bry90 »

Non vorrei dirti una cavolata ma quando provai a far partire uno script all'avvio che aprisse gedit o un qualche programma con interfaccia grafica, non riuscivo. Per il semplice motivo che l'interfaccia grafica necessità x-org che parte più tardi dell'avvio del kernel al contrario dello script che partiva appena successivamente.

Il tuo caso non è uguale ma non so se il montaggio delle device può venire eseguito solo dopo che il sistema è stato caricato. Prova solo a montare la device e vedi se quando il sistema ha finito l'avvio rimane montata.
fla.odo
Prode Principiante
Messaggi: 25
Iscrizione: martedì 3 giugno 2008, 17:16
Desktop: ubuntu
Distribuzione: Ubuntu 12.04 x86_64
Località: Pordenone

Re: Esecuzione giornaliera di uno script

Messaggio da fla.odo »

Il pc che deve eseguire questo script è acceso H24 quindi quando dovrebbe venire eseguito il sistema è già pronto. Purtroppo però non avviene nulla.
Lo script lanciato da terminale però funziona perfettamente...
Avatar utente
filo1234
Rampante Reduce
Rampante Reduce
Messaggi: 6172
Iscrizione: lunedì 26 febbraio 2007, 21:10
Località: Cagliari

Re: Esecuzione giornaliera di uno script

Messaggio da filo1234 »

prova a mettere il path completo degli eseguibili esempio /usr/bin/rsync /usr/bin/mount ecc.. ...... e nel cron reindirizzare l'output dello script in 2>&1 > /dev/null
posta anche la riga che hai inserito nel cron
f4bry90
Prode Principiante
Messaggi: 213
Iscrizione: domenica 3 gennaio 2010, 22:08
Desktop: Xfce
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Pescara

Re: Esecuzione giornaliera di uno script

Messaggio da f4bry90 »

Ah ottio scusa avevo capito allo startup. Mmmmm.. Allora mi spiace ma non so aiutarti, cron ancora lo conosco. Scusa per le risposte nulle 8)
fla.odo
Prode Principiante
Messaggi: 25
Iscrizione: martedì 3 giugno 2008, 17:16
Desktop: ubuntu
Distribuzione: Ubuntu 12.04 x86_64
Località: Pordenone

Re: Esecuzione giornaliera di uno script

Messaggio da fla.odo »

Allora... ho messo le path complete ma non è cambiato nulla, quindi ora lo script è questo:

Codice: Seleziona tutto

#!/bin/sh

echo "Sincronizzazione avviata il: "`date` >> "/home/flavio/Ubuntu One/rsync_log"

/usr/bin/gvfs-mount smb://admin@giganas/public

sleep 5

/usr/bin/rsync -r -t -v --delete -i -s "/media/Dati/" "/home/flavio/.gvfs/public su giganas" >> "/home/flavio/Ubuntu One/rsync_log"


/usr/bin/gvfs-mount -u smb://admin@giganas/public

echo "Sincronizzazione conclusa il: "`date` >> "/home/flavio/Ubuntu One/rsync_log"

exit
questo script, chiamato "rsyncmirror" è stato semplicemente posizionato all'interno della cartella /etc/cron.daily
che dovrebbe essere sufficiente a farlo eseguire una volta al giorno.

nel crontab non ho inserito nulla, è il seguente:

Codice: Seleziona tutto

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

Avatar utente
filo1234
Rampante Reduce
Rampante Reduce
Messaggi: 6172
Iscrizione: lunedì 26 febbraio 2007, 21:10
Località: Cagliari

Re: Esecuzione giornaliera di uno script

Messaggio da filo1234 »

sinceramente non ho mai usato cron.daily o altro, uso sempre il crontab utente o root
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 7 ospiti