Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Immutable Page
  • Info
  • Attachments


Guida verificata con Ubuntu: 16.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Rsync è un leggero e versatile strumento per il backup. Permette di eseguire backup incrementali (rileva e salva i soli file modificati o aggiunti rispetto all'ultima operazione di copia, evitando di eseguire un backup completo), locali o in remoto.

Prima di cominciare

  1. Rsync è installato di base su Ubuntu, tuttavia è preferibile controllare che i pacchetti: rsync, xinetd e ssh siano installati prima di procedere col backup.

  2. E' necessario che la cartella di destinazione si trovi su un filesystem in grado di gestire i permessi di tipo Unix-like (evitare quindi i filesystem di sistemi NT, quali NTFS e FAT).

Eseguire un backup

Backup in locale

Per eseguire un backup in locale è sufficiente digitare il seguente comando in una finestra di terminale:

sudo rsync -av /percorso/cartelladiorigine /percorso/cartelladidestinazione

prestando attenzione a sostituire «/percorso/cartelladiorigine» con il percorso della cartella contenente i dati di cui vogliamo fare il backup e «/percorso/cartelladidestinazione» con il percorso della cartella di destinazione del backup stesso.

Le opzioni utilizzate in questo caso sono:

  • -a: copia ricorsivamente e conserva i permessi e le date dei file.

  • -v: abilita la modalità verbose (mostrando le operazioni in corso ed eventuali errori).

È possibile eseguire un backup in rete come se fosse un backup in locale semplicemente utilizzando Samba e montando la cartella condivisa nel computer da cui si sta operando. È comunque consigliabile per la propria sicurezza utilizzare questo metodo solo per computer connessi in reti private e non in internet.

È possibile fare in modo che rsync cancelli nella cartella di destinazione i file non più presenti nella cartella di origine aggiungendo l'opzione --delete ottenendo quindi un backup incrementale completo:

sudo rsync --delete -av /percorso/cartelladiorigine /percorso/cartelladidestinazione

È anche possibile escludere dal backup alcuni dati usando l'opzione --exclude.

Ad esempio, per escludere i file e le cartelle nascoste:

sudo rsync --exclude=".*" --delete -av /percorso/cartelladi origine /percorso/cartelladidestinazione

Per ulteriori opzioni è possibile consultare il manuale di rsync:

man rsync

Backup in rete

Per eseguire un backup in rete è sufficiente digitare questo comando in una finestra di terminale:

sudo rsync --delete -azv -e ssh /percorso/cartella1 utenteremoto@hostremoto:/percorso/cartella2

sempre prestando attenzione a sostituire «/percorso/cartella1» con il percorso della cartella di origine, «/percorso/cartella2» con il percorso della cartella di destinazione e «utenteremoto@hostremoto» con l'indirizzo dell'utente remoto.

In questo caso le opzioni utilizzate, oltre a quelle precedentemente descritte, sono:

  • -z: comprime i dati durante il trasferimento.

  • -e: specifica la shell remota da utilizzare, in questo caso ssh.

Rsync Daemon

In alternativa a ssh è possibile utilizzare Rsync Daemon per effettuare i backup in rete. Il vantaggio di utilizzare Rsync Daemon è quello di poter effettuare un backup di un intero sistema senza utilizzare l'utente root e quindi mantenere una maggiore sicurezza.

Per utilizzare Rsync Daemon procedere come segue:

  • Installare il pacchetto xinetd.

  • Per abilitare xinetd da parte di rsync aprire con un editor di testo e con i privilegi di amministrazione il file /etc/default/rsync. Cercare la seguente riga:

    RSYNC_ENABLE=false

    e modificarla come segue:

    RSYNC_ENABLE=inetd
    salvare e chiudere l'editor di testo.
  • Per avviare rsync tramite xinetd creare con un editor di testo e con i privilegi di amministrazione il file /etc/xinetd.d/rsync e inserire il seguente contenuto:

    service rsync
    {
        disable = no
        socket_type = stream
        wait = no
        user = root
        server = /usr/bin/rsync
        server_args = --daemon
        log_on_failure += USERID
    }
  • Per configurare rsync per la modalità daemon creare con un editor di testo e con i privilegi di amministrazione il file /etc/rsyncd.conf e incollare il seguente contenuto:

    max connections = 2
    log file = /var/log/rsync.log
    timeout = 300
    
    [share]
    comment = Public Share
    path = /home/share
    read only = no
    list = yes
    uid = nobody
    gid = nogroup
    auth users = utente
    secrets file = /etc/rsyncd.secrets

    prestando attenzione a sostituire la parola «utente» col nome dell'utente da autorizzare all'utilizzo di rsync.

  • Per impostare la password creare con un editor di testo e con i privilegi di amministrazione il file /etc/rsyncd.secrets e scrivere quanto segue:

    utente:password
    prestando attenzione a sostituire «utente» col nome utente utilizzato in precedenza e «password» con la password utilizzata per il login in macchina remota.
  • Per assegnare i giusti permessi al file precedentemente creato aprire un terminale e digitare il seguente comando:

    sudo chmod 600 /etc/rsyncd.secrets
  • Infine riavviare xinetd per applicare le modifiche digitano in una finestra di terminale il seguente comando:

    sudo /etc/init.d/xinetd restart
  • Per controllare il buon esito delle operazioni è possibile digitare il seguente comando:

    sudo rsync utente@host::share
    sostituendo «utente» con il nome utente in uso e «host» con il nome host in uso.

    Il risultato del precedente comando dovrebbe essere simile a questo:

    drwxr-xr-x        4096 2006/12/13 09:41:59 .
    drwxr-xr-x        4096 2006/11/23 18:00:03 folders

Ulteriori risorse


CategoryAmministrazione