Hardware e software per sistema backup pianificati e sicuri?

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
mauro
Linux 2.x
Linux 2.x
Messaggi: 281
Iscritto il: gio 11 mag 2006, 21:51
Slackware: current
Kernel: uno degli ultimi...
Desktop: dwm

Re: Hardware e software per sistema backup pianificati e sicuri?

Messaggio da mauro »

potresti provare a risvegliare il disco prima del mount (credo hdparm -s ma non sono sicuro, non l'ho mai usato)

senno' puoi far eseguire mount non un numero arbitrario di volte ma finche' non sei sicuro che ti abbia montato davvero il disco con una roba del genere, e poi solo dopo iniziare il backup

Codice: Seleziona tutto

while ! `grep -q external01 /etc/mtab`
do  
  mount -v /external01/ >> /var/log/backupmount 2>&1
  sleep 3 
done \
 && /usr/sbin/backupetcetc

Avatar utente
sberla54
Master
Master
Messaggi: 1500
Iscritto il: gio 24 giu 2004, 0:00
Slackware: 13.0
Desktop: Gnome (o Fluxbox)
Distribuzione: Ubuntu
Località: Bologna
Contatta:

Re: Hardware e software per sistema backup pianificati e sicuri?

Messaggio da sberla54 »

potresti provare a risvegliare il disco prima del mount (credo hdparm -s ma non sono sicuro, non l'ho mai usato)
Sarebbe interessante ma non ho trovato niente a riguardo su internet: http://en.wikipedia.org/wiki/Hdparm

Anche questo e' interessante:

Codice: Seleziona tutto

while ! `grep -q external01 /etc/mtab`
do 
  mount -v /external01/ >> /var/log/backupmount 2>&1
  sleep 3
done \
&& /usr/sbin/backupetcetc
Ma esattamente cosa fa?
E' un ciclo che si ripete finche' "external01" non compare in /etc/mtab e quindi non e' montato? E' cosi?

Codice: Seleziona tutto

mount -v /external01/ >> /var/log/backupmount 2>&1
A che serve quel 2>&1 finale?

Codice: Seleziona tutto

  sleep 3
E questo sleep3?

Con sto sistema non rischio il loop infinito?

Un altro paio di migliorie mi sono venute in mente:
1) Come faccio a fare in modo che mount -v scriva sul file backupmount anche quando non riesce a montare il disco, e quindi da errore? Giusto per capire quante volte da errore prima di montarsi realmente.
2) Come posso aggiungere l'orario (ed eventualmente la data) nei log? Sia in quelli di mount che in quelli degli script rsync...giusto per vedere quando iniziano e quando finiscono.

Grazie mille ancora di tutti sti consigli! Sto nuovo sistema di backup e' veramente una figata! E poi ora sto iniziando ad usare cron anche per altro, come slapt-get -u, oppure la sincronizzazione dell'orologio di sistema :)

Avatar utente
mauro
Linux 2.x
Linux 2.x
Messaggi: 281
Iscritto il: gio 11 mag 2006, 21:51
Slackware: current
Kernel: uno degli ultimi...
Desktop: dwm

Re: Hardware e software per sistema backup pianificati e sicuri?

Messaggio da mauro »

sberla54 ha scritto:
potresti provare a risvegliare il disco prima del mount (credo hdparm -s ma non sono sicuro, non l'ho mai usato)
Sarebbe interessante ma non ho trovato niente a riguardo su internet: http://en.wikipedia.org/wiki/Hdparm
intanto leggendo il man mi son fatto l'idea che hdparm -s non sia l'opzione giusta, c'e' un VERY DANGEROUS di fianco che mi suona abbastanza male... con hdparm -S(tempo di timeout) invece ho fatto un paio di prove e a me il disco torna active, funziona, immagino ci sia anche un altro modo di risvegliarlo senza dover per forza reimpostare il tempo di timeout pero'...
sberla54 ha scritto: Anche questo e' interessante:

Codice: Seleziona tutto

while ! `grep -q external01 /etc/mtab`
do 
  mount -v /external01/ >> /var/log/backupmount 2>&1
  sleep 3
done \
&& /usr/sbin/backupetcetc
Ma esattamente cosa fa?
E' un ciclo che si ripete finche' "external01" non compare in /etc/mtab e quindi non e' montato? E' cosi?

si, esattamente
sberla54 ha scritto:

Codice: Seleziona tutto

mount -v /external01/ >> /var/log/backupmount 2>&1
A che serve quel 2>&1 finale?
e' la risposta alla 1), cosi' logghi anche gli errori, (e' il reindirizzamento che non riuscivo a ricordare l'altro giorno in chat)
prova a dare

Codice: Seleziona tutto

mount jdklsajdklas >> log_di_mount
mount ti dara' errore ma nel log non ti finira' nulla perche' il messaggio finisce sullo standard error, invece con

Codice: Seleziona tutto

mount djksadkl >> log_di_mount 2>&1
logghi sia std.output che std error

sberla54 ha scritto:

Codice: Seleziona tutto

  sleep 3
E questo sleep3?

probabilmente non e' necessario davvero, ma cosi' non continui a sparare mount a raffica se qualcosa non va bene.

sberla54 ha scritto: Con sto sistema non rischio il loop infinito?

beh, si... finche' non monta external01 lui va avanti, potremmo dargli un limite di tempo (ma secondo me resta comunque migliore il riuscire a risvegliare il disco e poi dare un mount.)

Anzi, lasciando perdere il ciclo, se dai mount sulla stessa riga di cron da cui lanci lo script x backup funziona? tipo: mount blabla && altri comandi

Perche' a modo tuo fai partire mount e un minuto dopo il backup (a prescindere dal fatto che mount abbia finito o no) invece cosi' finche' mount non monta il backup non parte
sberla54 ha scritto: 2) Come posso aggiungere l'orario (ed eventualmente la data) nei log? Sia in quelli di mount che in quelli degli script rsync...giusto per vedere quando iniziano e quando finiscono.

Codice: Seleziona tutto

echo Backup started at `date`>> tuolog 
prima di iniziare il backup e la stessa cosa alla fine

Avatar utente
sberla54
Master
Master
Messaggi: 1500
Iscritto il: gio 24 giu 2004, 0:00
Slackware: 13.0
Desktop: Gnome (o Fluxbox)
Distribuzione: Ubuntu
Località: Bologna
Contatta:

Re: Hardware e software per sistema backup pianificati e sicuri?

Messaggio da sberla54 »

Bene, ho un po' aggiornato tutto seguendo i vostri consigli ed ora sembra andare meglio.

Ho creato uno script per il mount ed uno anche per il backup di qualche directory della root.

backupmount.sh:

Codice: Seleziona tutto

#!/bin/sh

LABEL="external01"
MOUNTPOINT="/external01/"
LOG="/var/log/backupmount"


echo "Mounting the disk: `date`" > $LOG 2>&1
while ! `grep -q $LABEL /etc/mtab`
do 
  mount -v $MOUNTPOINT >> $LOG 2>&1
  sleep 3
  echo "Trying to wake up disk "$LABEL: `date`""
done 
echo "Disk "$LABEL" successfully mounted!"
\
backuphome.sh:

Codice: Seleziona tutto

#!/bin/sh

SOURCE="/home/"
DEST="/external01/home_bkp"
OPTIONS="-av --delete"
EXCLUDE="--exclude=sberla54/download --exclude=sberla54/linux.ISO --exclude=/sberla54/PC --exclude=/sberla54/PS2  --exclude=/sberla54/.aMule --exclude=/ftp"
LOG="/var/log/backuphome"
#OPTIONS="-rLtgopDxv --delete-after"
#EXCLUDE="--exclude-from=nobackup3.txt"
#INCLUDE="--include-from=backup.txt"

case "$1" in

"-c" )
echo "Checking..."
echo "Backup started at `date`"
rsync $OPTIONS $EXCLUDE --dry-run $SOURCE $DEST
;;

"-b" )
echo "Copying..."
echo "Backup started at `date`" > $LOG 2>&1
rsync $OPTIONS $EXCLUDE $SOURCE $DEST >> $LOG 2>&1
;;

*)
echo "Usage: `basename $0` {-c|-b}"
echo "-c : Check for backup"
echo "-b : Backup"
exit
;;

esac
backuparch.sh:

Codice: Seleziona tutto

#!/bin/sh

SOURCE="/arch/musica/"
DEST="/external01/arch_bkp"
OPTIONS="-av --delete"
LOG="/var/log/backuparch"
#EXCLUDE=""
#OPTIONS="-rLtgopDxv --delete-after"
#EXCLUDE="--exclude-from=nobackup3.txt"
#INCLUDE="--include-from=backup.txt"

case "$1" in

"-c" )
echo "Checking..."
echo "Backup started at `date`"
rsync $OPTIONS $EXCLUDE --dry-run $SOURCE $DEST
;;

"-b" )
echo "Copying..."
echo "Backup started at `date`" > $LOG 2>&1
rsync $OPTIONS $EXCLUDE $SOURCE $DEST >> $LOG 2>&1
;;

*)
echo "Usage: `basename $0` {-c|-b}"
echo "-c : Check for backup"
echo "-b : Backup"
exit
;;

esac
backuproot.sh:

Codice: Seleziona tutto

#!/bin/sh

SOURCE="/"
DEST="/external01/root_bkp"
OPTIONS="-av --delete"
EXCLUDE="--exclude=arch --exclude=bin --exclude=dev --exclude=etc/shadow --exclude=external01 --exclude=home  --exclude=install --exclude=lib  --exclude=media --exclude=mnt --exclude=opt  --exclude=proc --exclude=root --exclude=sbin --exclude=srv --exclude=sys --exclude=tmp --exclude=usr --exclude=win"
LOG="/var/log/backuproot"
#OPTIONS="-rLtgopDxv --delete-after"
#EXCLUDE="--exclude-from=nobackup3.txt"
#INCLUDE="--include-from=backup.txt"

case "$1" in

"-c" )
echo "Checking..."
echo "Backup started at `date`"
rsync $OPTIONS $EXCLUDE --dry-run $SOURCE $DEST
;;

"-b" )
echo "Copying..."
echo "Backup started at `date`" > $LOG 2>&1
rsync $OPTIONS $EXCLUDE $SOURCE $DEST >> $LOG 2>&1
;;

*)
echo "Usage: `basename $0` {-c|-b}"
echo "-c : Check for backup"
echo "-b : Backup"
exit
;;

esac
Ora i files di log vengono creati dagli script stessi e non piu' da cron.
Non so niente di shell ma mi pare tutto corretto :)

Ovviamente aggiornato anche cron:

Codice: Seleziona tutto

00 5 * * * /usr/bin/backupmount ; /usr/sbin/backuphome.sh -b && /usr/sbin/backuparch.sh -b && /usr/sbin/backuproot.sh -b ; umount -v /external01/ >> /var/log/backupmount 2>&1
Grazie a tutti per i consigli...stanotte lo testo :)

Una cosa mi chiedevo, riguardo allo script backuproot: c'e' un modo per indicare solo le poche sottocartelle che si vogliono backuppare, invece che indicare tutte quelle che si vogliono escludere?

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Hardware e software per sistema backup pianificati e sicuri?

Messaggio da conraid »

sberla54 ha scritto: Una cosa mi chiedevo, riguardo allo script backuproot: c'e' un modo per indicare solo le poche sottocartelle che si vogliono backuppare, invece che indicare tutte quelle che si vogliono escludere?
Metti prima le include e poi le exclude. E in include metti quel che vuoi, in exclude ci metti "**" (due asterischi, leggi il man). Non ho mai provato comunque, però lo uso per includere delle sottodirectory quando escludo la directory. Fai qualche prova. Altrimenti puoi usare l'opzione --filter, leggermente più complessa

Rispondi