[RISOLTO]script bash per backup
-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
[RISOLTO]script bash per backup
salve a tutti avrei bisogno di aiuto per favore.
eseguo il backup di una cartella di lavoro con areca backup il quale mi da la possibilità di creare uno script per l'avvio del backup da terminale.
il backup avviene su un disco usb che accendo solo quando mi serve. vorrei però automatizzare questa operazione tramite uno script bash richiamato da cron
fin qui tutto semplice, il fatto è che non vorrei lasciare sempre l'hd acceso per tutto il giorno per tutti i giorni, per questo vorrei creare uno script che faccia prima il controllo se l'hd usb è montato, se lo è parte il backup, altrimenti mi avvisa tramite una finestra di kdialog (uso kubuntu 14.04) o un suono magari!
sarebbe possibile?
purtroppo fino alla configurazione di cron riesco da solo ma di programmazione bash non ne capisco molto, c'è modo di farlo?
vi ringrazio molto
eseguo il backup di una cartella di lavoro con areca backup il quale mi da la possibilità di creare uno script per l'avvio del backup da terminale.
il backup avviene su un disco usb che accendo solo quando mi serve. vorrei però automatizzare questa operazione tramite uno script bash richiamato da cron
fin qui tutto semplice, il fatto è che non vorrei lasciare sempre l'hd acceso per tutto il giorno per tutti i giorni, per questo vorrei creare uno script che faccia prima il controllo se l'hd usb è montato, se lo è parte il backup, altrimenti mi avvisa tramite una finestra di kdialog (uso kubuntu 14.04) o un suono magari!
sarebbe possibile?
purtroppo fino alla configurazione di cron riesco da solo ma di programmazione bash non ne capisco molto, c'è modo di farlo?
vi ringrazio molto
Ultima modifica di axr il giovedì 16 febbraio 2017, 18:07, modificato 1 volta in totale.
- DoctorStrange
- Imperturbabile Insigne

- Messaggi: 2926
- Iscrizione: mercoledì 14 ottobre 2015, 9:33
- Desktop: Gnome3
- Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
- Sesso: Maschile
- Località: Roma, Italia
Re: script bash per backup
Certo, basta fare un controlla sulla directory dove, di solito viene montato il tuo hard disk.
Nel mio caso per esempio, la directory dove, di solito viene montata la mia pen drive è: /media/$USER/MICRODRIVE.
Quindi basta fare un:
In questo modo sei certo che ad intervalli regolari, tramite cron puoi richiamare questo script che, prima di ogni cosa controlla che il disco sia montato, e poi puoi fare quello che vuoi.
In base alla presenza o meno del disco, puoi far comparire un pop-up per esempio.
Io ad esempio, uso spesso:
Nel mio caso per esempio, la directory dove, di solito viene montata la mia pen drive è: /media/$USER/MICRODRIVE.
Quindi basta fare un:
Codice: Seleziona tutto
if [ -f /media/$USER/MICRODRIVE ]; then
;Qui dentro l'if fai eseguire il tuo script di backup
fi
In base alla presenza o meno del disco, puoi far comparire un pop-up per esempio.
Io ad esempio, uso spesso:
Codice: Seleziona tutto
notify-send 'Titolo del popup' 'Messaggio popup'- giulux
- Amministratore

- Messaggi: 25440
- Iscrizione: domenica 10 gennaio 2010, 12:17
- Desktop: ubuntu 18.04
- Distribuzione: Ubuntu 18.04.3 LTS x86_64
- Sesso: Maschile
- Località: Roma
Re: script bash per backup
Sposto in programmazione.
"Non è una segno di buona salute l'essere ben adattato ad una società malata". (Jiddu Krishnarmurti)
-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
Re: script bash per backup
ti ringrazio,
ho scritto questo:
mi invia un suono se montato e mi apre xterm dove vedo l'output, il fatto è che vorrei lasciare il terminale aperto per vedere se è andato a buon fine il backup, per questo ho inserito il comando read ma non funziona, il termiale si chiude da solo. ottima l'idea di notify-osd, vedo di adattarla a kubuntu, non ci avevo pensato grazie
ho scritto questo:
Codice: Seleziona tutto
libsmount="/media/axenx/Alessandro-Back/";
mountpoint $libsmount
if [ $? -eq 0 ] ; then
aplay /usr/share/sounds/speech-dispatcher/test.wav
xterm -e ./backup_1577714777.sh
read
#echo "already mounted"
else
aplay /usr/share/sounds/KDE-Im-Cant-Connect.ogg
#echo "not mounted do it now"
fi- DoctorStrange
- Imperturbabile Insigne

- Messaggi: 2926
- Iscrizione: mercoledì 14 ottobre 2015, 9:33
- Desktop: Gnome3
- Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
- Sesso: Maschile
- Località: Roma, Italia
Re: script bash per backup
Non hai necessità di lasciare un terminale aperto per vedere l'esito di un semplice backup.
Dai il comando di backup e lo lasci lavorare.
Poi una volta che il backup ha terminato, intercetti l'exit status con " $? " e, in base all'exit status, generi un popup per esito positivo o fallimento.
In questo modo, in base alla lettura dell'exit status del comando di backup, hai anche un indicazione di massima di cosa potrebbe essere andato storto.
Cosa usi per fare il backup, cp, scp, rsync, o qualche applicazione particolare?
Dai il comando di backup e lo lasci lavorare.
Poi una volta che il backup ha terminato, intercetti l'exit status con " $? " e, in base all'exit status, generi un popup per esito positivo o fallimento.
In questo modo, in base alla lettura dell'exit status del comando di backup, hai anche un indicazione di massima di cosa potrebbe essere andato storto.
Cosa usi per fare il backup, cp, scp, rsync, o qualche applicazione particolare?
-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
Re: script bash per backup
uso areca backup
questo è l'output sda shell che vorrei leggere prima di chiudere il terminale:
questo è l'output sda shell che vorrei leggere prima di chiudere il terminale:
Codice: Seleziona tutto
axenx@axenx:~$ ./backup_1577714777.sh
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
INFO - - Configuration path : /home/axenx/.areca/workspace/1577714777.bcfg
INFO - - Target : Laboratorio
INFO - - Backup in progress ...
INFO - - 0%
INFO - - 10%
INFO - - 20%
INFO - - 30%
INFO - - 40%
INFO - - 50%
INFO - - 60%
INFO - - 70%
INFO - - Committing backup ...
INFO - - Creating a copy of the target's XML configuration ...
INFO - - Commit completed.
INFO - - Backup completed.
axenx@axenx:~$
- DoctorStrange
- Imperturbabile Insigne

- Messaggi: 2926
- Iscrizione: mercoledì 14 ottobre 2015, 9:33
- Desktop: Gnome3
- Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
- Sesso: Maschile
- Località: Roma, Italia
Re: script bash per backup
Probabilmente intercettando lo STDOUT e lo STDERR di quell'applicazione e "dirottandola" nel tuo script puoi intercettare tutti quegli eventi.
Però non ne sono sicuro, dovresti fare qualche prova.
Però non ne sono sicuro, dovresti fare qualche prova.
-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
Re: script bash per backup
controllando nella pianificazione del programma, posso far eseguire uno script che mi salva il risultato in un file, perfetto!
allora ho pensato di inserire alla fine del mio script di backup un comando che mi apre il file in questione.
i file vengono nominati così: rapporto_backup_2017_02_16_16h57_1 e quello che cambia è questa parte 2017_02_16_16h57 che rappresenta la data e l'ora.
come posso fare a scegliere l'ultimo file creato nella cartella? cioè quello con l'ultima data?
puoi aiutarmi?
grazie
allora ho pensato di inserire alla fine del mio script di backup un comando che mi apre il file in questione.
i file vengono nominati così: rapporto_backup_2017_02_16_16h57_1 e quello che cambia è questa parte 2017_02_16_16h57 che rappresenta la data e l'ora.
come posso fare a scegliere l'ultimo file creato nella cartella? cioè quello con l'ultima data?
puoi aiutarmi?
grazie
- thece
- Tenace Tecnocrate

- Messaggi: 13164
- Iscrizione: lunedì 23 aprile 2007, 14:16
- Distribuzione: Debian 12 (Bookworm) - KDE
Re: script bash per backup
prova un qualcosa tipo
Codice: Seleziona tutto
VARIABILE=$(ls -1 rapporto_backup_* | sort -r | head -n 1)-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
Re: script bash per backup
Ciao e grazie del tuo aiut, ma....scusa la mia ignoranza, questo è lo script:
la carte dove sono i file è questa: /home/axenx/rapporto backup al cui interno ci sono questi file:
rapporto_backup_2017_02_16, 16h52, 1
rapporto_backup_2017_02_16, 16h53, 1
rapporto_backup_2017_02_16_16h57_1
Non è che voglio la pappa pronta è che non so dove mettere le mani!!!

Codice: Seleziona tutto
#/bin/bash
libsmount="/media/axenx/Alessandro-Back/";
mountpoint $libsmount
if [ $? -eq 0 ] ; then
aplay /usr/share/sounds/speech-dispatcher/test.wav
konsole -e "/home/axenx/.areca/bin/areca_cl.sh" backup -c -wdir "/tmp/tmp-axenx" -config "/home/axenx/.areca/workspace/1577714777.bcfg"
VARIABILE=$(ls -1 | sort -r | head -n 1)
#echo "already mounted"
exit
else
aplay /usr/share/sounds/KDE-Im-Cant-Connect.ogg
#echo "not mounted do it now"
firapporto_backup_2017_02_16, 16h52, 1
rapporto_backup_2017_02_16, 16h53, 1
rapporto_backup_2017_02_16_16h57_1
Non è che voglio la pappa pronta è che non so dove mettere le mani!!!
-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
Re: script bash per backup
VARIABILE=$(ls -1 rapporto_backup_* | sort -r | head -n 1)
non trova i file nella cartella
ho fatto una cosa tipo questa:
e mi apre kate ma vuoto perche non trova i file pur ricontrollando tutti i percorsi. ho anche eliminato gli spazi nel nome della cartella, come vedi ho inserito gli under score
non trova i file nella cartella
ho fatto una cosa tipo questa:
Codice: Seleziona tutto
#/bin/bash
VARIABILE=$(ls -1 /home/axenx/rapporto_backup/rapporto_backup_* | sort -r | head -n 1)
kate $VARIABILE
Ultima modifica di axr il giovedì 16 febbraio 2017, 17:25, modificato 1 volta in totale.
- thece
- Tenace Tecnocrate

- Messaggi: 13164
- Iscrizione: lunedì 23 aprile 2007, 14:16
- Distribuzione: Debian 12 (Bookworm) - KDE
Re: script bash per backup
Codice: Seleziona tutto
#/bin/bash
LIBSMOUNT="/media/axenx/Alessandro-Back/"
mountpoint $LIBSMOUNT
if [ $? -eq 0 ]; then
aplay /usr/share/sounds/speech-dispatcher/test.wav
konsole -e "/home/axenx/.areca/bin/areca_cl.sh" backup -c -wdir "/tmp/tmp-axenx" -config "/home/axenx/.areca/workspace/1577714777.bcfg"
VARIABILE=$(ls -1 "/home/axenx/rapporto backup/rapporto_backup_*" | sort -r | head -n 1)
# Qui inizi ad usare $VARIABILE per farci quello che vuoi
#echo "already mounted"
else
aplay /usr/share/sounds/KDE-Im-Cant-Connect.ogg
#echo "not mounted do it now"
fi
exit 0
- non è obbligatorio, ma negli script Bash le variabili in genere si scrivono tutte in MAIUSCOLO
- indenta il codice
Ultima modifica di thece il giovedì 16 febbraio 2017, 17:27, modificato 1 volta in totale.
- thece
- Tenace Tecnocrate

- Messaggi: 13164
- Iscrizione: lunedì 23 aprile 2007, 14:16
- Distribuzione: Debian 12 (Bookworm) - KDE
Re: script bash per backup
Era solo un'indicazione, andava adattato ... il software va scritto in modo esatto altrimenti è normale che non funzioniaxr [url=http://forum.ubuntu-it.org/viewtopic.php?p=4959304#p4959304][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:VARIABILE=$(ls -1 rapporto_backup_* | sort -r | head -n 1)
non trova i file nella cartella
- thece
- Tenace Tecnocrate

- Messaggi: 13164
- Iscrizione: lunedì 23 aprile 2007, 14:16
- Distribuzione: Debian 12 (Bookworm) - KDE
Re: script bash per backup
Banale ...
Supponiamo che $VARIABILE contenga il valore pippo.txt
Domanda: qual'è la working directory dello script, ossia da quale directory Kate sta aprendo il file? In quale directory è contenuto il file pippo.txt?
Meglio usare
che dici?
Riguardati i concetti di percorso assoluto, percorso relativo e working directory (directory corrente)
Codice: Seleziona tutto
kate $VARIABILEDomanda: qual'è la working directory dello script, ossia da quale directory Kate sta aprendo il file? In quale directory è contenuto il file pippo.txt?
Meglio usare
Codice: Seleziona tutto
kate "/PATH/ASSOLUTO/$VARIABILE"Riguardati i concetti di percorso assoluto, percorso relativo e working directory (directory corrente)
-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
Re: script bash per backup
ho fatto come mi hai scritto tu:
ma è lo stesso.
se entro nella cartella e passo il tuo comando senza percorso assoluto, trova il file:
Codice: Seleziona tutto
#/bin/bash
cd /home/axenx/rapporto_backup
VARIABILE=$(ls -1 /home/axenx/rapporto_backup/rapporto_backup_* | sort -r | head -n 1)
kate $VARIABILEse entro nella cartella e passo il tuo comando senza percorso assoluto, trova il file:
Codice: Seleziona tutto
axenx@axenx:~/rapporto_backup $ ls -1 rapporto_backup_* | sort -r | head -n 1
rapporto_backup_2017_02_16_16h57_1
axenx@axenx:~/rapporto_backup $ ls -1 /home/axenx/rapporto_backup/rapporto_backup_* | sort -r | head -n 1
ls: impossibile accedere a /home/axenx/rapporto_backup/rapporto_backup_*: File o directory non esistente
axenx@axenx:~/rapporto_backup $
-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
Re: script bash per backup
ho capito il problema, c'era uno spazio alla fine del nome della cartella!!!!

-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
Re: script bash per backup
risolto:
grazie infine del vostro aiuto
Codice: Seleziona tutto
#/bin/bash
libsmount="/media/axenx/Alessandro-Back/";
mountpoint $libsmount
if [ $? -eq 0 ] ; then
aplay /usr/share/sounds/speech-dispatcher/test.wav
xterm -e /home/axenx/backup_1577714777.sh
sleep 10s
VARIABILE=$(ls -1 /home/axenx/rapporto_backup/rapporto_backup_* | sort -r | head -n 1)
kate $VARIABILE
#echo "already mounted"
exit
else
aplay /usr/share/sounds/KDE-Im-Cant-Connect.ogg
#echo "not mounted do it now"
fi
-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
Re: [RISOLTO]script bash per backup
non capisco prchè cron mi esegue solo la prima parte dello script. si ferma prima di avviare il backup!!!
- thece
- Tenace Tecnocrate

- Messaggi: 13164
- Iscrizione: lunedì 23 aprile 2007, 14:16
- Distribuzione: Debian 12 (Bookworm) - KDE
Re: [RISOLTO]script bash per backup
E' sempre un problema di percorsi: leggi bene la documentazione di cron e di come è settata la sua variabile di ambiente PATHaxr [url=http://forum.ubuntu-it.org/viewtopic.php?p=4959330#p4959330][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:non capisco prchè cron mi esegue solo la prima parte dello script. si ferma prima di avviare il backup!!!
-
axr
- Entusiasta Emergente

- Messaggi: 1909
- Iscrizione: sabato 1 aprile 2006, 16:10
- Distribuzione: kubuntu 22.04
Re: [RISOLTO]script bash per backup
Ho controllato l'indentazione dello script e il backup è partito ma kate non è partito
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti