Repository 32bit  Forum
Repository 64bit  Wiki

Backup con rsync

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
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.

Backup con rsync

Messaggioda samiel » mar ago 07, 2012 18:36

Ho trovato in rete alcuni script per automatizzare il backup con rsync.
Dopo qualche sistematina, ho questo script che però mi dà errore:
Codice: Seleziona tutto
#!/bin/bash

SOURCE="{~/argomentare,articoli,bibliografie,cataloghi,condominio,
copertine,cratilo,dialettica,dizionario,documenti,elisp,ermeneutica,
esperienza,ezine,fichte,filosofi,guide_debian,guide_latex,
guide_linux,guide_php,guide_slackware,html4dummies,mail,manuale,
mutt4dummies,neopositivisti,noneuclidee,novecento,protagonisti,
protagonisti_nuovo,public_html,retorica,s4d_project,sabina,sacchettino,
Scaricati,schelling,scuola,slack4dummies,slackbook,songs,storia,tesi,
texmf,tin4dummies,tractatus,xindy}"   # Directory di origine di cui fare il backup
TARGET="/media/CORSAIR"      # Directory di destinazione dove cui fare il backup
#EXCLUDE="/home/max/.rsync/exclude"   # Lista file da escludere
date=`date "+%y-%M-%D"` # Data del backup; %H_%M per avere anche l'orario
TAG="backup" # tag dei log scritti in /var/log/messages

# VERIFICA CHE IL DISCO SIA MONTATO
MOUNTED=$(df | grep $TARGET |awk '{print $6}')
if [ "$MOUNTED" == "$TARGET" ]
then
   echo "Il disco è montato: eseguo il backup"
   logger Inizio backup di $SOURCE per `hostname` -t $TAG
   rsync -rvu --progress --exclude-from=$EXCLUDE $SOURCE $TARGET/
   RSYNCERR=$?
   logger Fine backup per `hostname` rsync ha restituito $RSYNCERR -t $TAG
   exit 0
else
   echo "Il disco non è montato"
   logger Impossibile eseguire il backup di `hostname` disco non montato -t $TAG
   exit 1
fi

Lanciandolo, ricevo:
Codice: Seleziona tutto
samiel@samiel:~$ sh backup.sh
backup.sh: 18: [: /media/CORSAIR: unexpected operator
Il disco non è montato

Ma la chiavetta USB è correttamente montata...

PS
Ometto l'opzione -a per poter fare un backup su chiavetta
formattata FAT32 di modo che sia leggibile anche nelle macchine Windows.
Giusto?

Grazie
M
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

Re: Backup con rsync

Messaggioda samiel » mar ago 07, 2012 19:29

Allora, ho visto che sh supporta una sintassi limitata,
l'errore viene meno lanciando lo script con bash.
Invece lo script continua a non trovare montato il dispositivo...

M
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

Re: Backup con rsync

Messaggioda notsafe » mar ago 07, 2012 20:51

prova ad usare "=" al posto di "==" come operatore.
notsafe
Linux 2.4
Linux 2.4
 
Messaggi: 451
Iscritto il: mar mar 21, 2006 11:00

Re: Backup con rsync

Messaggioda samiel » mar ago 07, 2012 21:00

gIÀ PROVATO,
MA MI DICE SEMPRE CHE IL DISCO NON È MONTATO...

m
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

Re: Backup con rsync

Messaggioda notsafe » mar ago 07, 2012 21:24

allora prova ad eseguirlo con "sh -x" e vedi "in debug mode" i vari step dello script: forse da li riesci a identificare il motivo dell'errore.
notsafe
Linux 2.4
Linux 2.4
 
Messaggi: 451
Iscritto il: mar mar 21, 2006 11:00

Re: Backup con rsync

Messaggioda samiel » mar ago 07, 2012 23:08

Codice: Seleziona tutto
samiel@samiel:~$ bash -x backup.sh
+ SOURCE='{~/argomentare,articoli,bibliografie,cataloghi,condominio,
copertine,cratilo,dialettica,dizionario,documenti,elisp,ermeneutica,
esperienza,ezine,fichte,filosofi,guide_debian,guide_latex,
guide_linux,guide_php,guide_slackware,html4dummies,mail,manuale,
mutt4dummies,neopositivisti,noneuclidee,novecento,protagonisti,
protagonisti_nuovo,public_html,retorica,s4d_project,sabina,sacchettino,
Scaricati,schelling,scuola,slack4dummies,slackbook,songs,storia,tesi,
texmf,tin4dummies,tractatus,xindy}'
+ TARGET=/media/CORSAIR/
++ date +%y-%M-%D
+ date=12-06-08/08/12
+ TAG=backup
++ df
++ awk '{print $6}'
++ grep /media/CORSAIR/
+ MOUNTED=
+ [[ '' == \/\m\e\d\i\a\/\C\O\R\S\A\I\R\/ ]]
+ echo 'Il disco non è montato'
Il disco non è montato
++ hostname
+ logger Impossibile eseguire il backup di archivio disco non montato -t backup
+ exit 1

Vede il disco cnme non montato, non mi pare qui venga aggiunto un elemento nuovo :-(

M
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

Re: Backup con rsync

Messaggioda targzeta » mer ago 08, 2012 0:48

L'errore è chiaro, questo comando non va a buon fine:
Codice: Seleziona tutto
MOUNTED=$(df | grep $TARGET |awk '{print $6}')
ma cosa dovrebbe fare? Se vuoi sapere se il disco è montato non ti basta fare:
Codice: Seleziona tutto
if grep -q $TARGET /proc/mounts
? Oppure:
Codice: Seleziona tutto
if mount | grep -q $TARGET
?

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6185
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: Backup con rsync

Messaggioda notsafe » mer ago 08, 2012 7:26

Codice: Seleziona tutto
++ df
++ awk '{print $6}'
++ grep /media/CORSAIR/
+ MOUNTED=


MOUNTED non viene valorizzato.Prova ad eseguire il comando manualmente,e verifica quale campo sta selezionando awk.
notsafe
Linux 2.4
Linux 2.4
 
Messaggi: 451
Iscritto il: mar mar 21, 2006 11:00

Re: Backup con rsync

Messaggioda samiel » mer ago 08, 2012 12:32

Ho modificato lo script così:
Codice: Seleziona tutto
# VERIFICA CHE IL DISCO SIA MONTATO
if mount | grep -q $TARGET
then
   echo "Il disco è montato: eseguo il backup"
   Inizio backup di $SOURCE per `hostname` -t $TAG
#   rsync -arvu --progress --exclude-from=$EXCLUDE $SOURCE $TARGET RSYNCERR=$?
   rsync -rvu --progress $SOURCE $TARGET RSYNCERR=$?
   logger Fine backup per `hostname`: rsync ha restituito $RSYNCERR -t $TAG
   exit 0
else
   echo "Il disco non è montato"
   logger Impossibile eseguire il backup di `hostname`: disco non montato -t $TAG
   exit 1
fi

ma il risultato è sempre:
Codice: Seleziona tutto
samiel@samiel:~$ bash -x backup.sh
+ SOURCE='{~/argomentare,articoli,bibliografie,cataloghi,condominio,
copertine,cratilo,dialettica,dizionario,documenti,elisp,ermeneutica,
esperienza,ezine,fichte,filosofi,guide_debian,guide_latex,
guide_linux,guide_php,guide_slackware,html4dummies,mail,manuale,
mutt4dummies,neopositivisti,noneuclidee,novecento,protagonisti,
protagonisti_nuovo,public_html,retorica,s4d_project,sabina,sacchettino,
Scaricati,schelling,scuola,slack4dummies,slackbook,songs,storia,tesi,
texmf,tin4dummies,tractatus,xindy}'
+ TARGET=/media/CORSAIR/
++ date +%y-%M-%D
+ date=12-29-08/08/12
+ TAG=backup
+ mount
+ grep -q /media/CORSAIR/
+ echo 'Il disco non è montato'
Il disco non è montato
++ hostname
+ logger Impossibile eseguire il backup di archivio: disco non montato -t backup
+ exit 1

Eppure:
Codice: Seleziona tutto
samiel@samiel:~$ df
File system                                            1K-blocchi     Usati Disponib. Uso% Montato su
rootfs                                                   77992664  11346572  62739888  16% /
udev                                                        10240         0     10240   0% /dev
tmpfs                                                      207336       632    206704   1% /run
/dev/disk/by-uuid/226a1c04-6d9a-4bab-a705-f6dd776ea0e4   77992664  11346572  62739888  16% /
tmpfs                                                        5120         0      5120   0% /run/lock
tmpfs                                                      414672        36    414636   1% /tmp
tmpfs                                                      414672        80    414592   1% /run/shm
/dev/sda3                                               187159716 116061452  61727952  66% /home
/dev/sdb1                                               106344560  57236632  43782384  57% /mnt/archivio
/dev/sdb2                                                26716608   5639436  19737756  23% /mnt/slackware
/dev/sdb3                                                26708576  21238068   4131492  84% /mnt/ubuntu
/dev/sda1                                                25607576  19691604   5915972  77% /mnt/windows
/dev/sdc1                                                31287312   8115456  23171856  26% /media/CORSAIR

per cio sdc1 o CORSAIR che dir si voglia c'è...
M
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

Re: Backup con rsync

Messaggioda notsafe » mer ago 08, 2012 13:37

Codice: Seleziona tutto
+ TARGET=/media/CORSAIR/


Codice: Seleziona tutto
/dev/sdc1                                                31287312   8115456  23171856  26% /media/CORSAIR


TARGET deve essere /media/CORSAIR senza / finale
notsafe
Linux 2.4
Linux 2.4
 
Messaggi: 451
Iscritto il: mar mar 21, 2006 11:00

Re: Backup con rsync

Messaggioda samiel » mer ago 08, 2012 18:24

Giusto, senza / finale!
Maper la selezione di directory multiple?
Come ho scritto io mi dà:
Codice: Seleziona tutto
rsync: change_dir "/home/samiel//{~/argomentare,/

con quella cosa strana /home/samiel//{~/argomentare
Mi pareva che la graffa consentisse di raggruppare velocemente
più directory...

M
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti