Newsgroup: it.comp.os.linux.iniziare
Titolo: Sistema di backup

Ciao a tutti
finora mi sono sempre fatto il backup con uno scriptino fatto in casa,
che in pratica usa tar+gzip e poi io, a manina, masterizzo il risultato
su cd. Ora pero' i backup non ci stanno piu' su un solo cd, quindi
dovrei rendere il mio script piu' raffinato. Qui entra il fatto che sono
un pigro :-P e che sicuramente c'e' qualcuno che ha fatto qualcosa di
simile ma meglio di quanto saprei fare io; qualcuno sa darmi
indicazioni? L'accrocchio dovrebbe avere queste capacita':
- backup su cd (ovviamente piu' d'uno)
- poter escludere files e directory con qualche regexp
- possibilita' di leggerlo anche da win (opzionale)
- leggero
Quest'ultimo requisito mi fa scartare amanda e un'altro che ora non mi
ricordo: hanno bisogno di un daemon, cosa che non mi pare "leggera".
Mondo l'avevo provato e non funzionava e ora come ora non si installa
neanche, multicd mi si impasta quando cdrecord va a scrivere sul cd...
io intanto continuo a provare quelli che trovo, voi che mi consigliate?
Ciao
  Andrea
-- 
Nulla e' piu' definitivo di una cosa provvisoria.

 - leggero
Io ne avevo fatto uno che usava afio e masterizzava i cd in sequenza.
Se vuoi te lo posto.
ciao
- -- 
            ,--()
()--STIXX--'-.-------|>
              `--[] 
http://elearning2.unibg.it/freelearning/index.php?req=15
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (MingW32)
iEYEARECAAYFAj8gBGkACgkQLpOZQGVrY42+JQCgjsm/IihW8FF1vACSu6ruVPke
+ekAoLjue5sVN25Bja/HXC5aR5WDMq5t
=bQ1/
-----END PGP SIGNATURE-----

 io intanto continuo a provare quelli che trovo, voi che mi consigliate?
ho scaricato poco tempo fa mkcdrec che sulla carta risponde ai requisiti
(e, almeno a me, sembra un "mondo lite"), ma non l'ho ancora provato :)
Per ora i miei backup (compressi) stanno ancora su un CD :)
-- 
 Francesco Romani - Ikitt  | Describe your vision, the meaning is missing |
*** mailserver: 
freemail.it
| Won't anybody listen?                        |

 simile ma meglio di quanto saprei fare io; qualcuno sa darmi
Sul sito di redhat c'e' uno script che fa' il backup su zip disk,
non dovrebbe essere un grande problema adattarlo ai CD.
Davide

 Se vuoi te lo posto.
Io approvo, facci veder lo script.

 Io approvo, facci veder lo script.
Eccoti qua, ti mando le due versioni che ho fatto, la prima fa una
singola immagine, la seconda masterizza in sequenza (dovrebbe :).
Per usarle devi scaricarti afio:
http://www.freshmeat.net/projects/afio
Io ho usato solo la prima, provale e sappimi dire.
WARNING: ho fatto un cut&paste, ed ho controllato il wrap, ma mi può
esere sfuggito qualcosa.
Versione 1.1:
- --8<-- cut here --8<--
#!/bin/bash
#
# Backafio - v 1.1
#
# A simple shell script for backup using afio.
# Change variables to fit your needs. You can simply
# restore your data with the command:
# afio -i Backupfile
# for more options read the afio documentation.
# Have fun :^)
#
# LICENSE: GPL - 
http://www.gnu.org/licenses/gpl.txt
#
# Requirements: afio
# 
http://www.freshmeat.net/projects/afio
#
#################################################
# Your configuration  -  Modify to fit your needs
# Files to backup - Insert as much files/dirs as you want, separated 
# with a space
# Example: "/bin /boot /etc /home /lib /opt /root /sbin /usr /var"
FILES="/home/kbs/scripts /home/kbs/News"
# Insert the path where you want to save your backup
# The directory should exist! 
# Default is your working directory.
OUTDIR=""
# Say 1 if you want to compress your backup. Then choose the 
# compressrate you prefer. A medium value is 6.
COMPRESS=1
COMPRESSRATE=9
# Do you want to burn your backup? Set 1 and define the speed of
# recording, the device (make a "cdrecord --scanbus" to scan your SCSI
# devices), and if you want eject after burning.
CDRECORD=0
SPEED=4
DEVICE="1,0,0"
EJECT=0
# I think you would have a complete log of all operations
VERBOSE=1
# Say 1 if you want to be emailed when finished
# Insert your email address
EMAIL=1
EMAILADDRESS=kbs
# End of configuration
#################################################
#################################################
# Edit below this line only if you know what you
# are doing
OUTFILE="Backup.`date +'%d-%m-%y'`"
OUTFILELOG="Backup.`date +'%d-%m-%y'`.log"
EMAILSUBJECT="Backup of $HOSTNAME finished!"
TMP="/tmp/backup"
LOGFILE=$TMP/Backup.`date +'%d-%m-%y'`.log
ISO=$TMP/Backup.iso
PROGRAM="Backafio"
VERSION="1.1"
LICENSE="GPL - 
http://www.gnu.org/licenses/gpl.txt
"
# Variabili
if test $VERBOSE -eq 1
  then VERBOSECOMMAND="-v"
fi
#
if test $COMPRESS -eq 1
  then COMPRESSCOMMAND="-Z"
fi
#
if [ ! -d $TMP ]; then 
  mkdir -p $TMP 
  chmod 700 $TMP
fi
#
if test $EJECT -eq 1
  then $EJECTCOMMAND="-eject"
fi
# Log
exec 3>&1
exec 1>$LOGFILE
exec 2>&1
# Do Backup
echo " "
echo "##################################################"
echo " "
echo "$PROGRAM v $VERSION by * k|b|s * mailto `echo ti.gulgb@sbk|'rev'`"
echo "License: $LICENSE"
echo " "
echo "Running backup of `echo $FILES` on $HOSTNAME"
echo "Starting time: `date`"
echo " "
echo " "
echo " "
# Backup vero e proprio
find $FILES -depth | afio -o $VERBOSECOMMAND -G $COMPRESSRATE\
$COMPRESSCOMMAND $OUTDIR$OUTFILE cat $LOGFILE > $OUTDIR$OUTFILELOG
echo " "
# Cdrecord
if test $CDRECORD -eq 1
then mkisofs -J -R -o $ISO $OUTDIR$OUTFILE && cdrecord $EJECTCOMMAND\
speed=$SPEED dev=$DEVICE $ISO fi
 
echo " "
echo " "
echo "Total filesize: `du -h $OUTDIR$OUTFILE`"
echo " "
echo "Finishing Time: `date`"
echo " "
echo "###################################################"
# Email
if [ $EMAIL -eq 1 ]
	  then cat $LOGFILE | mail -s "$EMAILSUBJECT" $EMAILADDRESS
	  fi
 
#
rm -rf $TMP
# Anche questa è fatta.
- --8<-- cut here --8<--
Versione 1.2:
- --8<-- cut here --8<--
#!/bin/bash
#
# Backafio - v 1.2
#
# A simple shell script for backup using afio.
# Change variables to fit your needs. You can simply
# restore your data with the command:
# afio -i Backupfile
# for more options read the afio documentation.
# Have fun :^)
#
# LICENSE: GPL - 
http://www.gnu.org/licenses/gpl.txt
#
# Requirements: afio
# 
http://www.freshmeat.net/projects/afio
#
#################################################
# Your configuration  -  Modify to fit your needs
# Files to backup - Insert as much files/dirs as you want, separated 
# with a space
# Example: "/bin /boot /etc /home /lib /opt /root /sbin /usr /var"
FILES="/home/kbs/"
# Insert the path where you want to save your backup
# The directory should exist! 
# Default is your working directory.
OUTDIR=""
# Say 1 if you want to compress your backup. Then choose the 
# compressrate you prefer. A medium value is 6.
COMPRESS=1
COMPRESSRATE=9
# Do you want to burn your backup? Set 1 and define the speed of
# recording, the device (make a "cdrecord --scanbus" to scan your SCSI
# devices), and if you want eject after burning.
CDRECORD=1
SPEED=4
DEVICE="1,0,0"
EJECT=0
# I think you would have a complete log of all operations
VERBOSE=1
# Say 1 if you want to be emailed when finished
# Insert your email address
EMAIL=1
EMAILADDRESS=kbs
# End of configuration
#################################################
#################################################
# Edit below this line only if you know what you
# are doing
for i in 1 2 3; do 
OUTFILE="Backup.`date +'%d-%m-%y'`_$i"
SOURCEVOLUME="Backup.`date +'%d-%m-%y'`_$i"
done
OUTFILELOG="Backup.`date +'%d-%m-%y'`.log"
EMAILSUBJECT="Backup of $HOSTNAME finished!"
TMP="/tmp/backup"
LOGFILE=$TMP/Backup.`date +'%d-%m-%y'`.log
for i in 1 2 3; do
ISO="Backup.`date +'%d-%m-%y'`_$i.iso"
done
PROGRAM="Backafio"
VERSION="1.2"
LICENSE="GPL - 
http://www.gnu.org/licenses/gpl.txt
"
# Variabili
if test $VERBOSE -eq 1
  then VERBOSECOMMAND="-v"
fi
#
if test $COMPRESS -eq 1
  then COMPRESSCOMMAND="-Z"
fi
#
if [ ! -d $TMP ]; then 
  mkdir -p $TMP 
  chmod 700 $TMP
fi
#
if test $EJECT -eq 1
  then $EJECTCOMMAND="-eject"
fi
# Log
exec 3>&1
exec 1>$LOGFILE
exec 2>&1
# Do Backup
echo " "
echo "##################################################"
echo " "
echo "$PROGRAM v $VERSION by * k|b|s * mailto `echo ti.gulgb@sbk|'rev'`"
echo "License: $LICENSE"
echo " "
echo "Running backup of `echo $FILES` on $HOSTNAME"
echo "Starting time: `date`"
echo " "
echo " "
echo " "
# Backup vero e proprio
if test $CDRECORD -eq 0
then
	find $FILES -depth | afio -o $VERBOSECOMMAND -G $COMPRESSRATE\
$COMPRESSCOMMAND $OUTDIR$OUTFILE cat $LOGFILE > $OUTDIR$OUTFILELOG
fi
echo " "
# Cdrecord
 
if test $CDRECORD -eq 1
then find $FILES -depth | afio -o -b 2048 -s325000x $VERBOSECOMMAND -G\
$COMPRESSRATE $COMPRESSCOMMAND $OUTDIR$OUTFILE > $OUTDIR$SOURCEVOLUME\	
mkisofs -J -R -o $ISO $OUTDIR$SOURCEVOLUME	cdrecord $EJECTCOMMAND\
speed=$SPEED dev=$DEVICE $ISO
cat $LOGFILE > $OUTDIR$OUTFILELOG
fi
 
echo " "
echo " "
echo "Total filesize: `du -h $OUTDIR$OUTFILE`"
echo " "
echo "Finishing Time: `date`"
echo " "
echo "###################################################"
# Email
if [ $EMAIL -eq 1 ]
	  then cat $LOGFILE | mail -s "$EMAILSUBJECT" $EMAILADDRESS
	  fi
 
#
rm -rf $TMP
# Anche questa è fatta.
- --8<-- cut here --8<--
ciao
- -- 
            ,--()
()--STIXX--'-.-------|>
              `--[] 
http://elearning2.unibg.it/freelearning/index.php?req=15
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (MingW32)
iEYEARECAAYFAj8k0hgACgkQLpOZQGVrY414tgCeJojV4cc7bdIMl9M4H8BT1rqh
CiQAn0iPTFsQco2xRi/fuXeheZUu1VWh
=5hZq
-----END PGP SIGNATURE-----

 echo " "
che diventa:
find $FILES -depth | afio -o $VERBOSECOMMAND -G $COMPRESSRATE\
$COMPRESSCOMMAND $OUTDIR$OUTFILE 
cat $LOGFILE > $OUTDIR$OUTFILELOG
echo " "
-- 
Try stixx :: Linux in a pen
http://elearning2.unibg.it/freelearning/index.php?req=15

 dovrei rendere il mio script piu' raffinato. Qui entra il fatto che sono
Vabbe', intanto ho trovato cdbackup e ho aggiustato un po' il mio
script; lo posto, che ho un paio di questioni:
----8<--------8<--------8<---- 
#!/bin/bash
#
# Script per il backup automatico delle directory importanti
#
# Scritto da me
# Occorre avere installato tar, cdrecord e cdbackup/cdrestore 
# Il file di configurazione e' /etc/backup.conf
# il formato del file e' il seguente:
# 
# include: directory/files da includere
# include: /etc /home /root /var /mnt/win/Documenti /usr/local
#
# exlude: pattern dei files da escludere (parametro passato direttamente
# a tar
# exclude: cache 
LOGDIR=/var/log
LOGFILE=backup.log
CONFFILE=/etc/backup.conf
DATE=`date +%d-%b-%Y`
GZIP="gzip -c9"
CDBACKUP="/usr/bin/cdbackup"
CDBOPTIONS="-d /dev/cdwriter -r 0,0,0 -s 24 -l 700 -a backup-${DATE} -m"
## log file
echo `/bin/date`: starting backup >> $LOGDIR/backup.log
DIRS_TO_INCLUDE=`cat $CONFFILE \
	| awk '/^include:/ { for(i=2 ; i<=NF;i++) print $i }'`
EXCLUDE_PATTERN=`cat $CONFFILE \
	| awk '/^exclude:/ { for(i=2 ; i<=NF;i++) print $i }'`
tar cvfl - --exclude $EXCLUDE_PATTERN $DIRS_TO_INCLUDE 2>> $LOGDIR/backup.log\
	 | $GZIP | $CDBACKUP $CDBOPTIONS
echo `/bin/date`: backup terminated >> $LOGDIR/backup.log
----8<--------8<--------8<----
Ciao
  Andrea

 	 | $GZIP | $CDBACKUP $CDBOPTIONS
Come potrei fare per non usare cdbackup/cdrestore?
backup - posso mettere in pipe tar | mkisofs | cdrecord, usando le
opzioni -MLF di tar e uno script di appoggio. In teoria funziona, in
pratica qualcuno ha provato?
restore - se il backup come pensato nella riga precedente ha funzionato,
non dovrei avere problemi particolari: basta usare tar e scompattare il
tutto, dico bene?
In ultimo: c'e' un modo semplice per fare una cosa tipo mondo, che tu
infili il primo cd del backup e ti parte un sistema minimale? Pensavo di
schiaffarci su il sistema di rescue della distribuzione, oppure
qualcosa creato al volo dal sistema corrente...
Ciao
  Andrea