Vediamo come fare
Qui è stato realizzato come esempio un piccolo script per eseguire dei backup guidati.
Creare un file chiamato backup.sh
Andiamo a creare un file chiamato backup.sh come da fig1
pigiare il tasto della tastiera Ins e andiamo a scrivere il contenuto come segue:
#!/bin/bash
while [ $risposta="esci" ]
do
clear
echo "Seguire le istruzioni e dare invio"
echo
echo NOTA IMPORTANTE
echo prima di iniziare bisogna gonoscere:
echo directory sorgente es. /home/
echo directory di destinazione es. /backup/
echo nome utente di destinazione es. root
echo nome della condivisa di rete es. //192.168.3.2/backup
echo ip del server di destinazione es. 192.168.1.2
echo
echo ------------------------------------------------------------------
echo per eseguire un backup su disco locale digitare --------- 1
echo per eseguire un backup su server remoto digitare -------- 2
echo per eseguire un backup su una cartella condivisa digitare 3
echo per uscire digitare esci e dare invio
echo ------------------------------------------------------------------
echo "Inserisci la tua scelta e dare invio:"
read risposta
case $risposta in
1)
clear
echo Backup su locale
echo
echo "Inserisci la directory di origine es. /home/:"
read source
####################################if [ ${source} != "" ]; then
if [ "$source" != "" ]; then
echo Dato inserito
else
source="/home/"
fi
if [ ! -d ${source} ]; then
echo ATTENZIONE la directory sorgente non esiste
read
exit
fi
echo "Directory da copiare: $source"
echo "Inserisci la directory di destinazione es./backup/:"
read dest
####################################if [ ${dest} == "" ]; then
if [ "$dest" != "" ]; then
echo Dato inserito
else
source="/home/dati/"
fi
if [ ! -d ${dest} ]; then
echo ATTENZIONE la directory sorgente non esiste
echo sara creata una nuova directory
fi
echo "Directory di destinazione: $dest"
echo
echo RIEPILOGO DEI DATI:
echo ---------------------------------------------------------------
echo
echo " Origine dati >>>>>>>>>>>>> $source"
echo " Destinazione dati >>>>>>>> $dest"
echo
echo ----------------------------------------------------------------
echo "Se i dati sono giusti <<< digitare si e poi invio >>> solo altrimenti invio per uscire"
read giusto
if [ "$giusto" = "si" ];
then
echo "Partito il BACKUP verso $dest"
rsync -avz --progress $source $dest
echo
echo FINITO invio per continuare
read
else
echo ricomincia da capo CIAOOO
read
fi
;;
2)
clear
echo eseguo il backup su un server remoto
echo "seguire le istruzioni e dare invio -- premi invio per iniziare"
read pino
echo "Inserisci l'utente del server remoto non iserire nulla per avere root:"
read ruser
if ["$ruser" == ""]; then
ruser="root"
fi
echo "L'utente impostato per la connessione con il server remoto: $ruser"
echo "Inserisci il nome o l'ip del server remoto:"
read rname
echo "server remoto: $rname"
echo "Inserisci la directory di origine es. /home/:"
read source
if [ "$source" != "" ]; then
echo Dati inseriti
else
source="/home/"
fi
if [ ! -d ${source} ]; then
echo ATTENZIONE la directory sorgente non esiste
read
exit
fi
echo "Directory da copiare: $source"
echo "Inserisci la directory di destinazione es./backup/:"
read dest
if [ "$dest" != "" ]; then
echo Dati inseriti
else
dest="/backup/"
fi
if [ ! -d ${dest} ]; then
echo ATTENZIONE la directory sorgente non esiste
echo sara creata una nuova directory
read
exit
fi
echo "Directory di destinazione: $dest"
echo
echo RIEPILOGO DEI DATI:
echo ---------------------------------------------------------------
echo
echo " Utente di destinazione >>> $ruser"
echo " Server di destinazione >>> $rname"
echo " Origine dati >>>>>>>>>>>>> $source"
echo " Destinazione dati >>>>>>>> $dest"
echo
echo ----------------------------------------------------------------
echo "Se i dati sono giusti <<< digitare si e poi invio >>> solo altrimenti invio per uscire"
read giusto
if [ "$giusto" = "si" ];
then
echo "Partito il BACKUP verso il server $dest"
rsync -avz --progress -e ssh $source $ruser@$rname:$dest
echo
echo FINITO invio per continuare
read
else
echo ricomincia da capo CIAOOO
read
fi
;;
3)
clear
echo Backup su condivisa
echo
echo "Inserisci la directory di origine es. /home/:"
read source
####################################if [ ${source} != "" ]; then
if [ "$source" != "" ]; then
echo Dato inserito
else
source="/home/"
fi
if [ ! -d ${source} ]; then
echo ATTENZIONE la directory sorgente non esiste
read
exit
fi
echo "Directory da copiare: $source"
echo "Inserisci l'utente per la condivisa su server remoto:"
read ruser
echo "L'utente impostato per la connessione con il server
remoto: $ruser"
echo "Inserisci la password condivisa su server remoto:"
read rpass
echo "La password inserita è: $rpass"
echo "Inserisci la condivisa es. //192.168.3.2/backup:"
read rcondivisa
echo "La condivisa inserita è: $rcondivisa"
echo verifico eseguo il mount della condivisa
if /bin/mount | grep "$rcondivisa" > /dev/null; then
echo "VOLUME MONTATO"
echo `/bin/mount | grep "$rcondivisa"`
else
/bin/mount -t cifs -o username=$ruser,password=$rpass $rcondivisa /mnt
sleep 2
if /bin/mount | grep "$rcondivisa" > /dev/null; then
echo "VOLUME MONTATO CON SUCCESSO "
echo `/bin/mount | grep "$rcondivisa"`
else
echo IL VOLUME NON SI MONTA
echo VERIFICARE I DATI INSERITI
exit
fi
fi
sleep 4
echo "Partito il BACKUP verso $rcondivisa"
rsync -avz --progress $source /mnt
echo
echo FINITO invio per continuare
read
;;
esci)
exit
;;
esac
done
completato piagiamo i tasti shift + zz e quindi il file viene salvato.
ora cambiamo i permessi per rendere eseguibile il file con chmod come fig:
ora eseguiamo il nostro file:
e avremo:
ora bisogna eseguire solo le indicazioni dello script :-)
se volete scaricarlo pronto clicca QUI.