Rsync home

Da PNLUG.

Abstract

Prima di qualunque attività importante, un MUST è salvare i dati. Io ho usato questa tecnica per il cambio di hard disk del mio portatile, ma il motivo per farlo sono molti e un "backup" non ha bisogno di buoni motivi per essere fatto :-)

Strumenti

Esistono molti tool per fare salvataggio. Per questo esercizio ho usato rsync che per mette di "mantenere" aggiornata una copia di backup. rsync infatti sincronizza 2 cartelle (la sorgente con la destinazione) attraverso una fase di controllo e di copia.

Locale

Se avete un disco esterno, una chiavetta usb o qualunque altra device locale, potete usarla come destinazione del salvataggio

un semplice

df -H

mostrerà le periferiche e come il sistema le vede (mount) ipotizziamo che la periferica sia montata come

/media/$USER/linuxbackup/

($USER andrà sostituito con l'utente owner)

bene l'obbiettivo sarà salvare il contenuto di

/home/$USER

in una cartella (home ad esempio), nel percorso

/media/$USER/linuxbackup/home

Copiare tutto o solo una parte

Al netto che copiare tutto non è un errore, vi sono cose che non ha senso copiare e addirittura altre che è preferibile non copiare.

Per fare una copia selettiva ci viene incontro la direttiva :

da man rsync:

--exclude-from=FILE     read exclude patterns from FILE
         This option is related to the --exclude option, but it specifies
         a FILE that contains exclude patterns  (one  per  line).   Blank
         lines  in  the  file  and  lines  starting  with  ’;’ or ’#’ are
         ignored.  If FILE is -, the list  will  be  read  from  standard
         input.

possiamo dargli un path di directory da escludere.


Esempio di file exclude

Qui trovate un esempio di file con alcune directory che verranno esclude dal salvataggio. Ovviamente le parti commentante (#) non verranno prese in considerazione dal file e quindi verranno copiate.

# rsync-homedir-excludes
#
# A list of files to exclude when backing up *nix home directories using rsync.
#
# Author: Ruben Barkow <https://github.com/rubo77/rsync-homedir-excludes>
# Version: 2015-08-30 


# directories, probably not worth a backup:
#Downloads
#games
#VirtualBox*
#.vagrant
#.vagrant.d
#.android
#.AndroidStudioBeta
#.gradle
#.gvm
#.grails/
#.grails_history
#.local/share/notbit/
#.wine

# games
#.minecraft
#.PlayOnLinux
#.local/share/Steam/

#These directories may be excluded:

# contains mounted file systems
.gvfs
.local/share/gvfs-metadata
# contains the actual encrypted home directory
.Private
# session-specific
.dbus
.cache
.Trash
.local/share/Trash
# cached info about audio CDs
.cddb
# cached packages lists
.aptitude 

#Flash-specific:

# Cache for flash, maybe others?
.adobe
# except for Flash persistence, there is no reason to keep this
.macromedia

#Files:

# contains errors from the current graphical session
.xsession-errors
# recently used files
.recently-used
.recently-used.xbel
.thumbnails
# session-specific
.Xauthority
.ICEauthority
.gksu.lock
.pulse  # directory
.pulse-cookie
.esd_auth

#KDE specific: 

# Recent documents on KDE
.kde/share/apps/RecentDocuments
# Contains a history of the Klipper clipboard (KDE)
.kde/share/apps/klipper
# you will loose saved scrolling positions of PDFs
.kde/share/apps/okular/docdata
.kde/share/apps/gwenview/recentfolders
# cached other users' profile pics
.kde/share/apps/kmess/displaypics
# cached emoticons of others
.kde/share/apps/kmess/customemoticons

#Firefox-specific (see also Profile folder): 

.mozilla/firefox/*/Cache
# in case Fx crashes dumps will be stored in this
.mozilla/firefox/*/minidumps
# session-specific 
.mozilla/firefox/*/.parentlock
# phishing database, recreated
.mozilla/firefox/*/urlclassifier3.sqlite
# blacklisted extensions
.mozilla/firefox/*/blocklist.xml
# extension database, recreated on startup
.mozilla/firefox/*/extensions.sqlite
.mozilla/firefox/*/extensions.sqlite-journal
.mozilla/firefox/*/extensions.rdf
.mozilla/firefox/*/extensions.ini
.mozilla/firefox/*/extensions.cache
# cached UI data, recreated
.mozilla/firefox/*/XUL.mfasl
.mozilla/firefox/*/XPC.mfasl
.mozilla/firefox/*/xpti.dat
.mozilla/firefox/*/compreg.dat 
#GnuPG: 

.gnupg/rnd
.gnupg/random_seed
.gnupg/.#*
.gnupg/*.lock
.gnupg/gpg-agent-info-* 

#Chromium:

.config/chromium/Default/Local Storage
.config/chromium/Default/Session Storage
.config/chromium/Default/Application Cache
.config/chromium/Default/History Index *

# Local repositories (added by errantlinguist on 2015-04-13):
.gradle/caches
.m2/repository

#indexer
.local/share/baloo
.local/share/zeitgeist
.local/share/akonadi
 
#Other apps:

# Pidgin
.pulse/icons
# Cached applets
.guayadeque/cache.db
.java/deployment/cache
.icedteaplugin
.icedtea
.gnome2/epiphany/favicon_cache

Versione PNLUG

Potete trovare una nostra versionem che vi consigliamo di salvare in questa maniera :


down vote accepted


Download the ignorelist to /var/tmp/ignorelist

wget http://www.pnlug.it/rsync_excludelist.txt -O /var/tmp/excludelist

Comando per la copia locale

rsync -aP --exclude-from=/var/tmp/excludelist /home/$USER/ /media/$USER/linuxbackup/home/

Remote bozza

rsync -avhe ssh --delete /home/user/dir/ user@remote.host.com:dir/
rsync --progress -avhe ssh --delete /home/user/dir/ user@remote.host.com:dir/
rsync -aP --exclude-from=/var/tmp/excludelist /home/$USER/ /media/$USER/linuxbackup/home/
-a, --archive               Archive mode
-v, --verbose               Increase verbosity
-e, --rsh=COMMAND           Specify rsh replacement
    --rsync-path=PATH       Specify path to rsync on the remote machine
    --numeric-ids           Don't map uid/gid values by user/group name
    --timeout=TIME          Set IO timeout in seconds
-z, --compress              Compress file data during the transfer

Fonti

local
remote
man
local2
info