e_ale92
Utente Èlite
- Messaggi
- 17,011
- Reazioni
- 5,013
- Punteggio
- 228
PS: Se hai tempo da perdere avrei almeno un centinaio di progettini da terminare
ahahahahah
Segui il video qui sotto per vedere come installare il nostro sito come web app sulla tua schermata principale.
Nota: Questa funzionalità potrebbe non essere disponibile in alcuni browser.
Pubblicità
PS: Se hai tempo da perdere avrei almeno un centinaio di progettini da terminare
Hai posato defintivamente arco e frecce?@alex87alex posso aggiungere anche i miei? :asd:
comunque finalmente ho aggiornato quella vecchia bagnarola di ubuntu 15.04 alla 16.04
E per quello anteriore?per il futuro prossimo sì
:cry:per il futuro prossimo sì
#!/bin/bash
testo="*************************************************************************
INFORMATIVA ALL’UTENTE.
*************************************************************************
BACKUP v3.0 Free license software by rebellion and thanks to «MoMy»
*************************************************************************
ATTENZIONE dipendenze da installare:
- pv
- zenity
*************************************************************************
Script di gestione backup incrementali e loro ripristino. Il backup incrementale raccoglie in
una cartella (di destinazione) il primo backup completo di una cartella (di provenienza); in
seguito vengono creati ulteriori archivi con le sole modifiche apportate alla cartella di pro-
venienza, il tutto gestito da un file .idx presente nella cartella dell’archivio.
Se però si desidera compiere un backup di una cartella non incrementale basterà, dopo aver
creato per la prima volta l’archivio, eliminare il file .idx mediante l’opzione di 'gestione files'
di questo script; fate attenzione a non cancellare il file .idx quando sono presenti più di un
backup incrementali altrimenti non sarà più possibile ripristinare il backup a meno di non e-
strarre il file ‘cartella’_backup0-gg-mm-aa.tar.gz relativo alla data gg-mm-aa.
Per estrarre un backup completo basta cliccare sul file .tar.gz col tasto sn o dx a seconda
della distribuzione/DE in uso. Tutti gli archivi creati sono compressi con gzip."
## controllo dipendenze
if [ ! -e "/usr/bin/pv" ] || [ ! -e "/usr/bin/zenity" ] ; then
if [ ! -e "/usr/bin/pv" ] ; then dip="pv" ; fi
if [ ! -e "/usr/bin/zenity" ] ; then [ -e "/usr/bin/pv" ] && dip="zenity" || dip=$dip" e zenity" ; fi
zenity --error --width=500 --height=100 --text="Errore: dipendenze non soddisfatte, installa $dip. Applicazione terminata." ; if [ $? -eq 1 ] ; then gnome-terminal --geometry=35x6 --hide-menubar --title="ERRORE dipndenze" -e 'bash -c "echo "" ; echo --------------------------;echo installa: '$dip'; echo --------------------------; echo app terminata, premi invio..; read"' ; fi
exit 0
fi
## mostra testo iniziale?
if [ $(sed -e '$!d' $0) = "#info=on" ] ; then
info=$(zenity --list --width=450 --height=600 --title="GESTIONE BACKUP INCREMENTALI" --text="$testo" --radiolist --column="clicca" --column="opzione" TRUE "Mostra ancora all'avvio" FALSE "Non mostrare più all'avvio")
case $info in
"Non mostrare più all'avvio" )
sed -i '$ d' $0
echo "#info=off" >> $0
;;
"" )
zenity --notification --text="gestione backup terminata, ciao."
exit 0
;;
esac
fi
## menù iniziale
var="mostra info al prossimo riavvio"
while [ "$var" = "mostra info al prossimo riavvio" ]
do
if [ $(sed -e '$!d' $0) = "#info=on" ] ; then
var=$(zenity --list --width=500 --height=330 --title="GESTIONE BACKUP/RIPRISTINO" --text="Seleziona l'opzione desiderata" --radiolist --column="clicca" --column="opzione" TRUE "script di BACKUP" FALSE "script di RIPRISTINO" FALSE "GESTIONE FILES" FALSE "mostra file di log")
else
var=$(zenity --width=500 --height=330 --list --title="GESTIONE BACKUP/RIPRISTINO" --text="Seleziona l'opzione desiderata" --radiolist --column="clicca" --column="opzione" TRUE "script di BACKUP" FALSE "script di RIPRISTINO" FALSE "GESTIONE FILES" FALSE "mostra file di log" FALSE "mostra info al prossimo riavvio")
fi
if [ "$var" = "mostra info al prossimo riavvio" ] ; then sed -i '$ d' $0 ; echo "#info=on" >> $0 ; fi
done
## scelte dal menù iniziale
case $var in
"script di BACKUP" )
dest=$(zenity --file-selection --directory --title="Seleziona la cartella di backup" 2> /dev/null)
case $? in
0 )
prov=$(zenity --file-selection --directory --title="Seleziona la cartella da copiare" 2> /dev/null)
if [[ $? -eq 0 ]]; then
[ $(du -s "$prov" | awk '{print $1}') -gt $(df "$dest" | tr "\n" ' ' | awk '{print $12}') ]
if [[ $? -eq 1 ]]; then
cartella=${prov##*/}
count=0 ; for i in $(find "$dest" -maxdepth 1 -name *.tar.gz) ; do let count=count+1 ; done
backupfile=$cartella"_backup"$count"-"$(date +%d-%m-%Y).tar.gz
testo="cartella di destinazione:
$dest
cartella di provenienza:
$prov
file di backup:
$backupfile"
zenity --question --title="BACKUP INCREMENTALE" --text="$testo"
if [ $? -eq 0 ]; then
log="backup_"$cartella.idx
if [ -e "$dest"/"$backupfile" ]; then
zenity --notification --window-icon="info" --text="c'è già un backup, non più di un backup al giorno"
else
logfile="logfile_backup_"$cartella"-"$(date +%d-%m-%Y) ; echo -e "Creazione archivio "$backupfile" in data "$(date +%d-%m-%Y)":\n\n" > "$dest"/"$logfile"
(tar c --listed-incremental="$dest"/"$log" -f - "$prov" | pv -n -s $(du -sb "$prov" | awk '{print$1}') | gzip > "$dest"/"$backupfile") 2>&1 | tee "$dest"/"$logfile" | zenity --progress --no-cancel --width=450 --height=120 --title="BACKUP $cartella" --text="backup in esecuzione, attendere.."
zenity --notification --window-icon="info" --text="backup eseguito con successo." ; echo -e "\n\n**fine backup.**" >> "$dest"/"$logfile"
fi
else
zenity --notification --text="gestione backup terminata, ciao."
fi
else
zenity --notification --window-icon="error" --text="backup non eseguito: spazio su disco non sufficiente."
fi
else
zenity --notification --text="gestione backup terminata, ciao."
fi
;;
1 )
zenity --notification --text="gestione backup terminata, ciao."
;;
esac
;;
"script di RIPRISTINO" )
prov=$(zenity --file-selection --directory --title="Seleziona la cartella dell'archivio" 2> /dev/null)
case $? in
0 )
if [ "$(find "$prov" -maxdepth 1 -name *.tar.gz)" = "" ] ; then zenity --notification --window-icon="error" --text="nessun archivio presente nella cartella."
else
dest=$(zenity --file-selection --directory --title="Seleziona la cartella dove ripristinare" 2> /dev/null)
if [[ $? -eq 0 ]]; then
[ $(du -s "$prov" | awk '{print $1}') -gt $(df "$dest" | tr "\n" ' ' | awk '{print $12}') ]
if [[ $? -eq 1 ]]; then
vararch=$(find "$prov" -maxdepth 1 -name *.tar.gz | grep _backup0) ; archivio=${vararch%%_*}"_backup.tar.gz" ; archivio=${archivio##*/}
val=$(du -sh "$prov" | awk '{print$1}')
testo="
cartella dove ripristinare:
$dest
cartella dell'archivio:
$prov
archivio da ripristinare:
$archivio
$val byte"
zenity --question --height=400 --title="BACKUP INCREMENTALE" --text="$testo"
if [ $? -eq 0 ] ; then
count=0 ; for i in $(find "$prov" -maxdepth 1 -name *.tar.gz) ; do a=$(du -sb "$i" | awk '{print$1}') ; let count=count+a ; done
logfile="logfile_ripristino_"$archivio"-"$(date +%d-%m-%Y) ; echo -e "Ripristino archivio "$archivio" in data "$(date +%d-%m-%Y)":\n\n" > "$dest"/"$logfile"
for file in "$(find "$prov" -maxdepth 1 -name *.tar.gz)"
do
echo "archivio: "$file >> "$dest"/"$logfile"
cd "$prov"
(tar xz --listed-incremental=/dev/null --file ${file##*/} -C "$dest" | pv -n -s $count) 2>&1 | tee "$dest"/"$logfile" | zenity --progress --no-cancel --width=450 --height=120 --title="RIPRISTINO $archivio" --text="ripristino dell'archivio $file in esecuzione, attendere.."
done
zenity --notification --window-icon="info" --text="ripristino eseguito con successo." ; echo -e "\n\n**fine ripristino.**" >> "$dest"/"$logfile"
else
zenity --notification --text="gestione backup terminata, ciao."
fi
else
zenity --notification --window-icon="error" --text="ripristino non eseguito: spazio su disco non sufficiente."
fi
else
zenity --notification --text="gestione backup terminata, ciao."
fi
fi
;;
"" )
zenity --notification --text="gestione backup terminata, ciao."
;;
esac
;;
"" )
zenity --notification --text="gestione backup terminata, ciao."
;;
"GESTIONE FILES" )
file=$(zenity --file-selection --title="Seleziona il file da elimnare" 2> /dev/null)
if [[ $? -eq 0 ]]; then
[ zenity --question --height=400 --title="BACKUP INCREMENTALE" --text="eliminare $file?" ] && echo "" || (rm "$file" && zenity --notification --text="file '${file##*/}' eliminato.")
else
zenity --notification --text="gestione backup terminata, ciao."
fi
;;
"mostra file di log" )
showfile=$(zenity --file-selection --title="Seleziona il file da mostrare" 2> /dev/null)
if [[ $? -eq 0 ]]; then
zenity --text-info --width=1500 --height=800 --title=${showfile##*/} --filename=$showfile
else
zenity --notification --text="gestione backup terminata, ciao."
fi
;;
esac
exit 0
#info=off