Il backup perfetto con rsnapshot

Condividi con noi i tuoi progetti e guide personali
Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Il backup perfetto con rsnapshot

Messaggio da Ninquitassar » 27 febbraio 2012, 15:12

Come promesso, condivido con tutta la community il metodo di backup che utilizzo.

Allora, un sistema di backup che si rispetti deve avere due caratteristiche:
  • essere totalmente automatico (se dipendesse dalla nostra attenzione o dalla nostra solerzia, o ce ne mettiamo a livelli maniacali, o stiamo freschi...!);
  • consentire un recupero dei files semplice, veloce e anche limitato ad alcuni file (non per forza tutti). In questo senso io non amo la creazione di iso o simili.
Con questo metodo, per le mie esigenze, ho risolto entrambi i problemi.

Premesse
  • È cosa consigliata avere una partizione di /home separata da quella di root. Tra le altre cose questo ci consente di fare una pulizia del sistema operativo in modo sufficientemente veloce, quando ne abbiamo necessità. Infatti potremo semplicemente reinstallare il sistema operativo, montando la partizione di /home senza riformattarla.
  • Per un buon backup è necessario avere un disco fisso (interno o esterno) separato da quello in cui normalmente teniamo i dati! In caso di rottura dello stesso, altrimenti, Addio a tutto!
  • Il disco di destinazione deve essere formattato in ext3 (almeno).
  • Il programma utilizzato è rsnapshot, un tool che utilizza l'ottimo rsync. La caratteristica principale di questo programma è quella di effettuare degli snapshot alla frequenza desiderata (quotidiana, settimanale o mensile). Ogni volta che viene effettuata questa operazione, non viene cancellato il backup precedente, nè viene aggiornato. Semplicemente si creerà una nuova cartella con all'interno tutti i file del vecchio backup e tutti i nuovi file, mantenendo anche la cartella con il vecchio backup (fino ad un massimale configurabile secondo le esigenze dell'utente). Ciò non causa, ovviamente, una duplicazione dello spazio su disco utilizzato! ;)
1) Installiamo e configuriamo rsnapshot

Tutta la difficoltà sta nel dare

Codice: Seleziona tutto

pacman -S rsnapshot
Il file di configurazione è /etc/rsnapshot.conf. Rimando alla lettura del file, sottolineando semplicemente i passaggi necessari da configurare. Attenzione: il file è spaziato con TAB!!!

Settare la cartella di destinazione:

Codice: Seleziona tutto

# Tutti gli snapshot vengono salvati in questa cartella.

snapshot_root /media/directory_di_backup/

# Se no_create_root è settato a 1, rsnapshot non creerà
# automaticamente la cartella snapshot_root. Ciò è particolarmente
# utile per fare backup su supporti rimovibili, come hard disk USB o
# FireWire.

no_create_root 1
Impostare gli intervalli di backup:

Codice: Seleziona tutto

# I nomi degli intervalli (weekly = settimanale, monthly = mensile, ...)
# sono solo nomi e non hanno nessun effetto sulla reale lunghezza
# dell'intervallo. I numeri impostano il numero di snapshot da
# conservare per ogni intervallo (weekly.0, weekly.1, ...).
# La lunghezza dell'intervallo viene impostato dall'intervallo temporale
# tra due esecuzioni di rsnapshot <nome intervallo>, generalmente
# tramite cron. Sentitevi liberi di adattare i nomi degli intervalli, e di
# conseguenza il file /etc/cron.d/rsnapshot secondo le vostre
# esigenze. L'unica vincolo è che gli intervalli devono essere elencati
# in ordine ascendente.

#interval hourly 10
interval daily 7
interval weekly 3
#interval monthly 36
Io conservo in questo caso 7 backup giornalieri successivi e 3 settimanali. Ecco cosa succede:

Codice: Seleziona tutto

 Ninquitassar @ ~ >>> ls -l /media/STEELHDD_LINUX 
drwxr-xr-x 3 root root  4096 27 feb 14.08 daily.0
drwxr-xr-x 3 root root  4096 26 feb 10.12 daily.1
drwxr-xr-x 3 root root  4096 24 feb 14.31 daily.2
drwxr-xr-x 3 root root  4096 23 feb 09.15 daily.3
drwxr-xr-x 3 root root  4096 22 feb 14.05 daily.4
drwxr-xr-x 3 root root  4096 20 feb 14.05 daily.5
drwxr-xr-x 3 root root  4096 19 feb 10.25 daily.6
drwx------ 2 root root 16384 17 set 00.02 lost+found
drwxr-xr-x 3 root root  4096 13 feb 14.04 weekly.0
drwxr-xr-x 3 root root  4096 28 gen 09.05 weekly.1
drwxr-xr-x 3 root root  4096 23 gen 09.05 weekly.2
Ad ogni ciclo di backup, ad esempio, giornaliero, viene rimosso daily.6 e viene generato un nuovo daily.0.

Specificare che directory salvare: io consiglio /etc (per le configurazioni), /home, /opt (se avete files che vi servono), /root, /usr/share (per i font, i temi, ecc...).

Codice: Seleziona tutto

# LOCALHOST
backup  /home/username/     local/
backup  /etc/   local/
backup  /opt/   local/
backup  /usr/share/     local/
backup  /root/     local/
Per il resto rimando al file stesso. È ottimamente commentato. Per vedere il mio file /etc/rsnapshot.conf

2) Pianificare i backup

Ora abbiamo l'esigenza che il backup sia automatico. Per far questo ho adattato un interessante script dell'ottimo blog di Saverio Bolognani alle mie esigenze. Lo script va poi fatto eseguire a crond ogni ora (poi spiegherò come).

Codice: Seleziona tutto

#! /bin/bash
# Basato su http://www.dei.unipd.it/~sbologna/backupinlinux3.html e modificato da Daniele Pressi (ninquitassar@gmail.com
# Esegue il backup quotidiano ogni volta che un giorno e` passato senza backup.
# Ogni settimana esegue anche il backup settimanale.

# definisce dove mettere il log file
log=/home/ninquitassar/.backup.log
data_oggi=`date "+%Y%m%d"`

timestamp_quotidiano=/home/NOMEUTENTE/.backup_timestamp_quotidiano
data_ultimo_backup_quotidiano=`stat --format=%y $timestamp_quotidiano | tr -d - | awk '{print $1}'`

timestamp_settimanale=/home/NOMEUTENTE/.backup_timestamp_settimanale
data_ultimo_backup_settimanale=`stat --format=%y $timestamp_settimanale | tr -d - | awk '{print $1}'`

date >> $log
 if (( $data_oggi <= $data_ultimo_backup_quotidiano )); then
    exit 0;

 fi
 echo "    1 giorno è passato: inizio il backup..." >> $log
 if (( $data_oggi - $data_ultimo_backup_settimanale >= 7 )); then
    echo "    7 giorni sono passati: inizio il backup..." >> $log
    /usr/bin/rsnapshot weekly && touch $timestamp_settimanale && echo "    SETTIMANALE ok!" >> $log

 fi
 rm /home/NOMEUTENTE/.pkglist.lst && rm /home/NOMEUTENTE/.pkglist_AUR.lst && pacman -Qqe | grep -vx "$(pacman -Qqm)" > /home/NOMEUTENTE/.pkglist.lst && pacman -Qqm > /home/NOMEUTENTE/.pkglist_AUR.lst && /usr/bin/rsnapshot daily && touch $timestamp_quotidiano && echo "    QUOTIDIANO ok!" >> $log
  • Salviamo in un file come ~/.scripts/rsnapshot
  • Rendiamolo eseguibile con # chmod +x /home/NOMEUTENTE/.scripts/rsnapshot
  • Creiamo i filetimestamp e il file di log: saranno i file da cui il nostro script determinerà quanto tempo è passato dall'ultimo backup.

    Codice: Seleziona tutto

    $ touch ~/.backup_timestamp_quotidiano
    $ touch ~/.backup_timestamp_settimanale
    $ touch ~/.backup.log
  • Cosa fa lo script? Semplicemente stampa la data sul file di log (~/.backup.log), calcola il tempo passato dall'ultimo backup quotidiano e dall'ultimo settimanale. Se è passato meno di un giorno, non fa nulla. Se è passato un giorno dà rsnapshot daily e al termine stampa l'avvenuto backup nel file di log e rinnova la data del timestamp. Se è passata anche una settimana, dà rsnapshot weekly, stampa l'avvenuto backup nel log e rinnova la data del timestamp (più difficile a dirsi che a farsi). Questo ha l'indubbio vantaggio, ad esempio, che, qualora il mio hard disk esterno sia scollegato al momento dell'esecuzione dello script, sarà rieseguito fino a che non troverà il nostro hard disk collegato. Il file crea anche due file (~/.pkglist.lst e ~/.pkglist_AUR.lst) con le liste dei pacchetti dai repo e da AUR (il che ci è decisamente utile in fase di ripristino).
3) Automatizziamo il tutto

Ora faremo eseguire a crond lo script da superuser ogni ora. Ognuno pianifichi come preferisce. Io ho creato un file /etc/cron.d/rsnapshot con la riga:

Codice: Seleziona tutto

3 * * * * root /usr/bin/nice /home/USERNAME/.scripts/rsnapshot
In pratica il terzo minuto di ogni ora root esegue lo script. Ovviamente ciò prevede che:
  • Se si utilizza initscripts il demone crond sia inserito nella lista dei demoni di /etc/rc.conf
  • Se si utilizza systemd il servizio cronie.service sia attivato
4) Per il ripristino

Per il ripristino del sistema (una volta installato il sistema operativo nuovo), basta montare l'hard disk di backup (wiki o google bastano e avanzano, non mi dilungo).

[si userà qui cp -a, che è ricorsivo di default e che mantiene i proprietari inalterati]
  • Probabilmente vorremo velocizzare la reinstallazione dei pacchetti con i mirror già configurati nel vecchio sistema:
  • [code]# cp -a /mnt/HARDDISKBACKUP/daily.0/local/etc/pacman.d/mirrorlist /etc/pacman.d/[/code]
  • Salvare alcuni file del nuovo sistema operativo, che potrebbero crearci problemi:

    Codice: Seleziona tutto

    # cp -a /etc/{fstab,pacman.conf,pacman.d,makepkg.conf} /mnt/HARDDISKBACKUP/new_files/
  • Reinstallare i pacchetti

    Codice: Seleziona tutto

    # cat /mnt/HARDDISKBACKUP/daily.0/local/home/NOMEUTENTE/.pkglist.lst | xargs pacman -S --noconfirm --needed
  • Copiare i file di configurazione e quant'altro:

    Codice: Seleziona tutto

    # cp -a /mnt/HARDDISKBACKUP/daily.0/local/home / (solo se è stata formattata anche la home, ovviamente)
    # cp -a /mnt/HARDDISKBACKUP/daily.0/local/etc /
    # cp -a /mnt/HARDDISKBACKUP/daily.0/local/usr/share /usr/
    # cp -a /mnt/HARDDISKBACKUP/daily.0/local/opt /
    # cp -a /mnt/HARDDISKBACKUP/daily.0/local/root /
    # cp -a /mnt/HARDDISKBACKUP/new_files/* /etc/ (i nuovi file che avevamo salvato)
    
Quindi riavviare il sistema.

Spero possa giovare!

----------------------------------------------------------------
Fonti:
http://www.dei.unipd.it/~sbologna/backupinlinux3.html
Ultima modifica di Ninquitassar il 19 agosto 2012, 17:57, modificato 3 volte in totale.
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

Avatar utente
Gimmy
Novello Arciere
Messaggi: 89
Iscritto il: 21 agosto 2011, 23:17

Messaggio da Gimmy » 27 febbraio 2012, 16:44

La butto lì: ma perché non fare una bella pagina sul wiki invece che riproporre ogni tot la stessa guida dallo stesso articolo (pure con lo stesso titolo!) ? viewtopic.php?id=10509
Comunque apprezzo l'impegno :)

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Messaggio da Ninquitassar » 27 febbraio 2012, 16:53

L'dea sarebbe quella. :) Solo che prima vedo se ci sono critiche.
Gimmy ha scritto:invece che riproporre ogni tot la stessa guida dallo stesso articolo (pure con lo stesso titolo!) ?
L'ho vista la pagina del forum. Io però sottolineo qua lo script rispetto alla configurazione di rsnapshot. Vedila come un'introduzione quella. Per chiarezza anche per le persone con meno pratica. ;)
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

~awake
Arciere
Messaggi: 158
Iscritto il: 28 luglio 2011, 2:09

Re:

Messaggio da ~awake » 16 giugno 2012, 16:35

Ottima guida, finalmente ho avuto modo di provarla. Avrei qualche domanda (più curiosità diciamo):
1. nel mio file di config mi ritrovo "localhost" invece di "local" come mai? Poi ho sostituito localhost con il mio hostname ma nella cartella di backup mi mette comunque "localhost", perché?
Ninquitassar ha scritto:Come promesso, condivido con tutta la community il metodo di backup che utilizzo.

Codice: Seleziona tutto

# LOCALHOST
backup  /home/username/     local/
backup  /etc/   local/
backup  /opt/   local/
backup  /usr/share/     local/
backup  /root/     local/
2. come si comporta rsnapshot se mentre sta eseguendo un backup scrivo/sposto/modifico/cancello file dal disco per il quale sta eseguendo il backup?

3. Non mi è chiarissimo come fare nel caso in cui volessi eseguire solo i backup settimanali. Mi basterebbe commentare "interval daily" nel file rsnapshot.conf?

grazie :)

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Re: Re:

Messaggio da Ninquitassar » 16 giugno 2012, 18:31

~awake ha scritto:Ottima guida, finalmente ho avuto modo di provarla. Avrei qualche domanda (più curiosità diciamo):
1. nel mio file di config mi ritrovo "localhost" invece di "local" come mai? Poi ho sostituito localhost con il mio hostname ma nella cartella di backup mi mette comunque "localhost", perché?
Questo è molto strano! O.o La seconda dicitura dovrebbe indicare appunto la cartella che viene creata dentro a Daily.0 & co. Non so dirti come mai funziona così da te. Qualcun altro forse è più competente di me...
~awake ha scritto:2. come si comporta rsnapshot se mentre sta eseguendo un backup scrivo/sposto/modifico/cancello file dal disco per il quale sta eseguendo il backup?
Io mi sono posto più volte la domanda. Ho cercato in forum, nel manuale (qui superficialmente, a dire il vero), in gruppi di discussione, ma non ho trovato granché. In ogni caso, è solo il primo backup ad essere abbastanza lungo: in quelli seguenti, essendo rsnapshot un programma incrementale (che scrive, cioè, solo i cambiamenti), nel mio caso (150Gb di backup) ci mette circa 3 minuti (e sto parlando di un device usb, quindi per HD interni ci mette anche meno). In ogni caso, visto che nel sito ufficiale propongono all'incirca questo procedimento (con tanto di automatizzazione cron), presumo che il problema se lo siano posto.
Da mia esperienza, comunque, ho già utilizzato i backup quattro o cinque volte per reinstallare il sistema e mai ho avuto il più piccolo problema. Mi auguro che non sia fortuna. xD
~awake ha scritto:3. Non mi è chiarissimo come fare nel caso in cui volessi eseguire solo i backup settimanali. Mi basterebbe commentare "interval daily" nel file rsnapshot.conf?
grazie :)
Esattamente! L'opzione interval va a definire la cadenza di backup (anche se è solo nominale; poi è il comando che esegui che lo decide: potresti fare, per capirci rsnapshot weekly tre volte al giorno e avere tre backup settimanali xD) e il numero indica quanti backup incrementali saranno conservati. ;) Quindi adatta tutto alle tue esigenze.

Spero di essere stato esauriente, nei limiti delle mie (poche) competenze. Per ogni cosa... son qui!
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

~awake
Arciere
Messaggi: 158
Iscritto il: 28 luglio 2011, 2:09

Re: Re:

Messaggio da ~awake » 16 giugno 2012, 18:48

Ninquitassar ha scritto:
~awake ha scritto:Ottima guida, finalmente ho avuto modo di provarla. Avrei qualche domanda (più curiosità diciamo):
1. nel mio file di config mi ritrovo "localhost" invece di "local" come mai? Poi ho sostituito localhost con il mio hostname ma nella cartella di backup mi mette comunque "localhost", perché?
Questo è molto strano! O.o La seconda dicitura dovrebbe indicare appunto la cartella che viene creata dentro a Daily.0 & co. Non so dirti come mai funziona così da te. Qualcun altro forse è più competente di me...
credo sia stato un "falso allarme" ho visto male, praticamente tempo fa lo provai ma non terminai il backup perché non avevo spazio sull'hd e nella cartella c'era un daily.0/localhost e oggi ho visto che mi ha creato un daily.1/localhost che inizialmente mi compariva con la data di oggi ma successivamente con la data uguale a quella del daily.0, boh, credo abbia aggiornato prima quello e poi è iniziato il backup con la nuova conf, infatti ora nella cartella daily.0 mi ritrovo due cartelle una localhost l'altra col mio hostname.

grazie per le risposte

~awake
Arciere
Messaggi: 158
Iscritto il: 28 luglio 2011, 2:09

Re: Il backup perfetto con rsnapshot

Messaggio da ~awake » 18 giugno 2012, 22:13

Ho qualche problemino/dubbio:

sospettavo che non eseguisse il backup in automatico così ho avviato manualmente lo script

Codice: Seleziona tutto

$ ./rsnapshot
e ho questo errore

Codice: Seleziona tutto

Could not open logfile /var/log/rsnapshot for writing
Do you have write permission for this file?
(ho provato con un chmod +w ma sembra non abbia effetto, forse sbaglio qualcosa)
invece se eseguo lo script con sudo si avvia normalmente ma dopo un po' (credo alla fine poiché mi sembra che il backup lo faccia) ho questo

Codice: Seleziona tutto

rsync: readlink_stat("/home/renzo/.gvfs") failed: Permission denied (13)
IO error encountered -- skipping file deletion
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
e qui non so che fare dove sono i precedenti errori? al primo backup effettivamente avevo un file con un carattere speciale che non fu trasferito ma poi modificai il nome, quindi non so.

sai aiutarmi?

grazie

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Re: Il backup perfetto con rsnapshot

Messaggio da Ninquitassar » 18 giugno 2012, 22:50

~awake ha scritto: sospettavo che non eseguisse il backup in automatico così ho avviato manualmente lo script

Codice: Seleziona tutto

$ ./rsnapshot
e ho questo errore

Codice: Seleziona tutto

Could not open logfile /var/log/rsnapshot for writing
Do you have write permission for this file?
Questo errore è normale. Rsnapshot va avviato da root! Per quello consiglio di farlo con crond.
~awake ha scritto: invece se eseguo lo script con sudo si avvia normalmente ma dopo un po' (credo alla fine poiché mi sembra che il backup lo faccia) ho questo

Codice: Seleziona tutto

rsync: readlink_stat("/home/renzo/.gvfs") failed: Permission denied (13)
IO error encountered -- skipping file deletion
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
Anche qui, è normale: se fai

Codice: Seleziona tutto

ls -la | grep .gvfs
Vedrai che tipo di permessi ha quella cartella. Io ho avuto lo stesso problema e semplicemente ho escluso la directory dal backup:

Codice: Seleziona tutto

exclude		/home/nomeutente/.gvfs
Attento alla spaziatura! Nel file di configurazione di rsnapshot si usa TAB, non lo spazio. ;)
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

~awake
Arciere
Messaggi: 158
Iscritto il: 28 luglio 2011, 2:09

Re: Il backup perfetto con rsnapshot

Messaggio da ~awake » 23 giugno 2012, 15:10

ho impostato come scritto su in cron.d ma non riesco a farlo partire in automatico

Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Re: Il backup perfetto con rsnapshot

Messaggio da Nemo » 18 luglio 2012, 21:13

Ciao ho appena finito di configurare il tutto come hai spiegato ma lo script non parte..provando ad avviarlo manualmente da root ottengo questo errore che però non so come correggere.

Codice: Seleziona tutto

./rsnapshot: command substitution: line 19: syntax error near unexpected token `|'
./rsnapshot: command substitution: line 19: `| tr -d - | awk '{print $1}''
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Re: Il backup perfetto con rsnapshot

Messaggio da Ninquitassar » 8 agosto 2012, 8:41

Scusate entrambi il grosso ritardo. Ero all'estero e per tre settimane sono stato praticamente impossibilitato ad accedere al forum (e ad un pc arch).
~awake ha scritto:ho impostato come scritto su in cron.d ma non riesco a farlo partire in automatico
Oggi pomeriggio guardo per bene come è impostato il mio cron.d. Avviandolo manualmente da superuser lo script funziona o riscontri lo stesso errore di Nemo?
Nemo ha scritto:Ciao ho appena finito di configurare il tutto come hai spiegato ma lo script non parte..provando ad avviarlo manualmente da root ottengo questo errore che però non so come correggere.

Codice: Seleziona tutto

./rsnapshot: command substitution: line 19: syntax error near unexpected token `|'
./rsnapshot: command substitution: line 19: `| tr -d - | awk '{print $1}''
Mi posti per cortesia il contenuto della riga 19? Così verifico se tutto è corretto. No, perché nello script che ho postato la riga 19 è vuota. :/
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

~awake
Arciere
Messaggi: 158
Iscritto il: 28 luglio 2011, 2:09

Re: Il backup perfetto con rsnapshot

Messaggio da ~awake » 11 agosto 2012, 12:30

avviato manualmente funziona, almeno l'ultima volta che provai funzionava

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Re: Il backup perfetto con rsnapshot

Messaggio da Ninquitassar » 18 agosto 2012, 18:51

Quindi il problema è di cron.
Io ho un file /etc/cron.d/rsnapshot che contiene solo la riga seguente:

Codice: Seleziona tutto

3 * * * * root /usr/bin/nice /home/ninquitassar/.scripts/rsnapshot_weekly
che punta allo script che ho pubblicato qui:

Codice: Seleziona tutto

#! /bin/bash
# Basato su http://www.dei.unipd.it/~sbologna/backupinlinux3.html e modificato da Stefano Pompa stefano.pompa@gmail.com
# Esegue il backup quotidiano ogni volta che un giorno e` passato senza backup.
# Ogni settimana esegue anche il backup settimanale.

# definisce dove mettere il log file
log=/home/ninquitassar/.backup.log
data_oggi=`date "+%Y%m%d"`

timestamp_quotidiano=/home/ninquitassar/.backup_timestamp_quotidiano
data_ultimo_backup_quotidiano=`stat --format=%y $timestamp_quotidiano | tr -d - | awk '{print $1}'`

timestamp_settimanale=/home/ninquitassar/.backup_timestamp_settimanale
data_ultimo_backup_settimanale=`stat --format=%y $timestamp_settimanale | tr -d - | awk '{print $1}'`

date >> $log
 if (( $data_oggi <= $data_ultimo_backup_quotidiano )); then
#    echo "    non faccio nulla" >> $log
    exit 0;

 fi
 echo "    1 giorno è passato: inizio il backup..." >> $log
 if (( $data_oggi - $data_ultimo_backup_settimanale >= 7 )); then
    echo "    7 giorni sono passati: inizio il backup..." >> $log
    /usr/bin/rsnapshot weekly && touch $timestamp_settimanale && echo "    SETTIMANALE ok!" >> $log

 fi
 rm /home/ninquitassar/.pkglist.lst && rm /home/ninquitassar/.pkglist_AUR.lst && pacman -Qqe | grep -vx "$(pacman -Qqm)" > /home/ninquitassar/.pkglist.lst && pacman -Qqm > /home/ninquitassar/.pkglist_AUR.lst && /usr/bin/rsnapshot daily && touch $timestamp_quotidiano && echo "    QUOTIDIANO ok!" >> $log
La tua situazione è la medesima?
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Re: Il backup perfetto con rsnapshot

Messaggio da Nemo » 18 agosto 2012, 20:04

Sì..la situazione è esattamente la stessa solo che a me non parte dallo script..mentre se avvio con

Codice: Seleziona tutto

rsnapshot -v daily
il backup viene fatto senza problemi.

EDIT: vedo ora la risposta precendente..nel mio caso il problema sullo script dipendeva da un mio errore di formattazione..non mi da più quell'errore ma comunque se avvio lo script manualmente non succede niente di niente.
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Re: Il backup perfetto con rsnapshot

Messaggio da Ninquitassar » 18 agosto 2012, 23:55

@Nemo: ovvietà, ma non si sa mai: i file
/home/**********/.backup.log
/home/**********/.backup_timestamp_quotidiano
/home/**********/.backup_timestamp_settimanale
/home/**********/.pkglist.lst
/home/**********/.pkglist_AUR.lst
esistono? In caso contrario crea dei file vuoti con quel nome.

EDIT
L'errore che riscontrare è questo?

Codice: Seleziona tutto

 sudo .scripts/rsnapshot_weekly
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot weekly 
----------------------------------------------------------------------------
ERROR: /etc/rsnapshot.conf on line 68:
ERROR: cmd_du /bin/du - /bin/du is not executable 
ERROR: ---------------------------------------------------------------------
ERROR: Errors were found in /etc/rsnapshot.conf,
ERROR: rsnapshot can not continue. If you think an entry looks right, make
ERROR: sure you don't have spaces where only tabs should be.
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot daily 
----------------------------------------------------------------------------
ERROR: /etc/rsnapshot.conf on line 68:
ERROR: cmd_du /bin/du - /bin/du is not executable 
ERROR: ---------------------------------------------------------------------
ERROR: Errors were found in /etc/rsnapshot.conf,
ERROR: rsnapshot can not continue. If you think an entry looks right, make
ERROR: sure you don't have spaces where only tabs should be.
In questo caso modificate la riga 68 di /etc/rsnapshot.conf da

Codice: Seleziona tutto

cmd_du  /bin/du
a

Codice: Seleziona tutto

cmd_du  /usr/bin/du
Ultima modifica di Ninquitassar il 19 agosto 2012, 1:28, modificato 1 volta in totale.
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Re: Il backup perfetto con rsnapshot

Messaggio da Nemo » 19 agosto 2012, 1:27

Avevo pensato anche io potesse essere questo il problema infatti li ho creati manualmente..ma comunque nessun risultato.
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Re: Il backup perfetto con rsnapshot

Messaggio da Ninquitassar » 19 agosto 2012, 1:29

Vedi edit.
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Re: Il backup perfetto con rsnapshot

Messaggio da Nemo » 19 agosto 2012, 1:34

No in realtà non mi viene riscontrato nessun errore..semplicemente se avvio lo script (ovviamente con il disco esterno collegato) non ricevo nessun output e non succede niente.
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Re: Il backup perfetto con rsnapshot

Messaggio da Ninquitassar » 19 agosto 2012, 1:36

Nel log viene scritto qualcosa?
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Re: Il backup perfetto con rsnapshot

Messaggio da Nemo » 19 agosto 2012, 1:46

Nel log giornaliero mi viene stampata la data e basta. Si comporta come se la data fosse antecedente la giornata e quindi non dovesse eseguire nessuna operazione. Ho provato anche a inserire manualmente nel log una data di molto precedente a quella del giorno e poi avviare lo script..non ottengo comunque nessun cambiamento.
Ovviamente ho anche provato a lasciare tutto collegato nel caso stesse comunque eseguendo il backup anche senza darne i segni, ma così non è stato.
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Re: Il backup perfetto con rsnapshot

Messaggio da Ninquitassar » 19 agosto 2012, 8:12

Cosa ti dà il comando da terminale:

Codice: Seleziona tutto

stat --format=%y /home/TUOUTENTE/.backup_timestamp_quotidiano | tr -d - | awk '{print $1}'
e cosa ti dà:

Codice: Seleziona tutto

date "+%Y%m%d"
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Re: Il backup perfetto con rsnapshot

Messaggio da Nemo » 19 agosto 2012, 10:19

Codice: Seleziona tutto

20120819
e

Codice: Seleziona tutto

20120819
tieni conto però che per sicurezza i file li ho cancellati e ricreati ieri sera quando mi hai chiesto se c'erano tutti..in modo da esser sicuro di non aver fatto casini anche solo coi nomi dei file.
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Re: Il backup perfetto con rsnapshot

Messaggio da Ninquitassar » 19 agosto 2012, 11:06

Prova a decommentare la riga dello script:

Codice: Seleziona tutto

#    echo "    non faccio nulla" >> $log
In modo da avere la prima parte come segue:

Codice: Seleziona tutto

date >> $log
 if (( $data_oggi <= $data_ultimo_backup_quotidiano )); then
#    echo "    non faccio nulla" >> $log
    exit 0;
Fa' un favore, inoltre. Posta lo script che hai nel computer qui e scrivimi qui l'url.
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

Avatar utente
Ninquitassar
Little John
Messaggi: 1085
Iscritto il: 16 settembre 2011, 21:07
Architettura: x86_64 (64bit)
Località: 127.0.0.1

Re: Il backup perfetto con rsnapshot

Messaggio da Ninquitassar » 19 agosto 2012, 11:10

Ah, altra ovvietà: se da root dai il comando per il backup:

Codice: Seleziona tutto

# rsnapshot daily
funge o meno?
CPU: Intel Core i5-4460 (3.20GHz) Video: NVIDIA GeForce GT610 RAM: 8Gb Kingston DDR3
OS: Arch x86_64 + i3 + GTK+
My DeviantART

Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Re: Il backup perfetto con rsnapshot

Messaggio da Nemo » 19 agosto 2012, 11:53

http://pastie.org/4549380

Eccolo..si ovviamente ho provato a lanciare

Codice: Seleziona tutto

# rsnapshot daily
e il backup viene effettuato senza nessun problema..quindi il guaio deve essere nello script.

EDIT: ho provato ad avviare lo script manualmente e ora mi stampa questo nel log file

Codice: Seleziona tutto

dom 19 ago 2012, 11.52.26, CEST
     non faccio nulla
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Rispondi