DISQUS

Informatica Friuli: Backup automatico nei sistemi Gnu/Linux

  • el_coda · 2 years ago
    Bello!
    Soprattutto l'rsync.
    E' possibile implementare un rsync continuo in tempo reale?
    E se si, funziona in modo sincrono o asincrono?

    Mi spiego, supponiamo che il device sorgente sia qualcosa che è perennemente sotto stress a livello di filesystem per cui sarebbe bello avere sempre una sua immagine continuamente sincronizzata con un ritardo di qualche minuto... è possibile farlo con rsync?

    Se così fosse, rync lavora in modo sincrono o asincrono? Ovvero ad ogni modifica sulla sorgente fa immediatamente fare una modifica nella destinazione e, magari, ne verifica il successo oppure in maniera asincrona nel senso che "replica appena può".

    Nel primo caso sarebbe interessante capire quanto questo influisce sulle performance della sorgente poichè in molti casi questa non può permettersi di aspettare che si concludano altri processi che trasferiscono informazioni via rete....

    Grazie
    Ivan
  • Riccardo Grosso · 2 years ago
    Rsync in questo caso viene avviato come comando, a cadenze regolari.

    Questi intervalli possono essere modificati a piacere (man date).
    Rsync scrive unicamente i dati modificati nel path di destinazione, non tutti i dati nuovamente, per cui il carico di lavoro è minimo (se non ti chiami Google). In questo senso rsync lavora in modo asincrono.

    Se desideriamo modifiche sincrone la soluzione migliore è un sistema RAID.

    In ogni caso c'è la possibilità di avviare rsync come server su una macchina separata _che trasferiscono informazioni via rete_, come giustamente facevi notare, con l'opzione --daemon ma è sempre il client che, ad intervalli prestabiliti, scrive sul server.

    Prossimamente scriverò una piccola guida su come costruire un server di backup e configurare correttamente i client, *nix o Windows che siano.

    Saluti,
    Riccardo Grosso
  • Kilelader · 1 year ago
    Uno splendido articolo, molto utile e chiaro... Ti ringrazio!!!
  • Kilelader · 1 year ago
    Ho un problema con questa stringa:

    BACKUP_FILENAME=`date +%A-%d-%B-%Y`

    sembra che non converta le variabili ma mantenga la versione letterale nel nome del tgz. Puoi indicarmi la stringa corretta?

    grazie
  • Kilelader · 1 year ago
    Risolto, credo che il problema fosse che andava specificato il percorso di date con

    `/bin/date +%A-%d-%B-%Y`

    PS: sto utilizzando Ubuntu Gutsy
  • Riccardo Grosso · 1 year ago
    Esattamente, hai risolto bene. Bastava in ogni caso anche "date".

    Ciao e grazie
  • bLax · 1 year ago
    grazie, molto utile la guida!! :)

    io volevo sapere se è possibile creare uno script di backup incrementale tramite r-sync ad ogni plug di un specifico hd....mi spiego, vorrei arrivare ad avere un hd usb, dove copia la mia home ogni volta che lo collego al computer, sai se è possibile?
  • Riccardo · 1 year ago
    Ciao. A dire il vero la guida sopra riportata, oltre che ad utilizzare il linguaggio di scripting della shell bash, presente di default sulla stragrande maggioranza delle distribuzioni Gnu/Linux e dei sistemi *NIX like, poggia pesantemente sulla funzionalità di scheduling dei programmi e dei comandi, implementata dal demone crond.
    Detti programmi, o script, o comandi appunto, vengono mandati in esecuzione PERIODICAMENTE, e non in coincidenza al verificarsi di un evento.

    Precisato ciò, una volta preparato lo script di backup ( ma visto che mi sembra tu sia su un sistema desktop, perchè non utilizzare Grsync, la comoda interfaccia grafica di Rsync? ), dovremmo creare un piccolo programma che interagisca con i volumi e il loro mount ( ma non sono formato a sufficenza su questo argomento ) e trovare il modo di caricare uno script ad un determinato evento.

    Altre soluzioni potrebbero essere quella di mettere il nostro script in crontab e avviarlo una volta al minuto, ma non è consona e non sò che tipo di problemi possa comportare a livello di carico. Oppure potremmo metterlo tra gli script di chiusura o di apertura del sistema o dell'interfaccia grafica. Ma si suppone sempre che il disco sia collegato, altrimenti nulla.

    Se hai dubbi posta pure

    ciao e grazie,

    Riccardo Grosso