Ciao, mi sono avvicinato da poco alla programmazione bash, e volevo proporre la mia soluzione ad un esercizio. Volevo qualche dritta da qualcuno un po' più esperto per semplificare e migliorare il mio codice. Il testo dell'esercizio è questo:
Creare uno script bash 'backup.sh' che effettui il backup giornaliero di una directory in un file .tar.gz. Tutti i backup andranno a finire in una cartella predefinita nello script ed ogni backup avrà un nome del tipo 'backupYYMMDD'.
La sintassi dovrebbe essere la seguente:
backup.sh [-d|--date YYMMDD] [directory to backup]
La mia soluzione è questa:
codice:
#!/bin/bash
if [ $# -eq 3 ] || [ $1 = -h ] || [ $1 = --help ] ; then
case "$1" in
-h|--help)
echo "Effettua il backup di una directory scelta dall'utente."
echo "sintassi: `basename $0` [-d|--date YYMMDD] [directory to backup]"
;;
-d|--date)
if [ -d "$3" ]; then
cp -R "$3" /home/peppe/Documenti/Script/backup
cd /home/peppe/Documenti/Script/backup
DIR= `basename $3`
tar -czf "backup$2.tar.gz" `basename $DIR`
else
echo "$3 non e' una directory e/o non esiste."
fi
;;
*)
echo "Errore."
echo "sintassi: `basename $0` [-d|--date YYMMDD] [directory to backup]"
;;
esac
else
echo "Inserire la data di oggi e la cartella da backuppare."
echo "sintassi: `basename $0` [-d|--date YYMMDD] [directory to backup]"
fi
exit 0