Backup cu rsync


#1

Pentru că backup-ul e important și pentru că nu în fiecare zi îmi schimb rutina și uneltele de backup, am redescoperit astăzi rsync, una din cele mai utile comenzi din OS X pentru mine. Am mai scris aici despre ea și nu voi conteni să o laud. Împrumutată din lumea *nix-urilor, rsync vă permite să sincronizați două locații și asta o face scula perfectă pentru backup sau pentru copierea unor cantități mai mari de date, pe care Finder nu le manipulează cum trebuie. Și pentru că este sâmbătă seara, am zis să încerc ceva nou astăzi.

Am de transferat aproximativ 1 TB de date, care durează cam cinci ore. Ei bine, în aceste cinci ore, am fost nevoit să repornesc Mac-ul și să întrerup astfel procesul de copiere. Și pentru că nu știu exact unde a rămas copierea și nu mi-a plăcut niciodată să trag un folder peste altul (pentru că timpul încurc efectul din Windows și OS X al acestei manevre), am zis să vedem cum mă poate ajuta rsync. Dar nu m-am mulțumit cu versiunea din OS X, care este puțin mai veche (2.6.9 care, dacă nu mă înșel, e din… 2006), m-am gândit că ar fi o idee bună să compilez o versiune mai nouă.

Pentru acest lucru, am folosit homebrew. Se poate compila și manual, fără homebrew, dar mie îmi place homebrew. Aveți nevoie și de Command Line Tools din XCode pentru o compilare cu succes, altfel procesul va fi întrerupt de o eroare. Nu merge un simplu homebrew install rsync, pentru că rsync face parte din sistem, iar pentru a înlocui binarele de sistem cu homebrew, aveți nevoie de homebrew-dupes. Așadar, primul pas:

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/rsync.rb

Noul rsync instalat îl va înlocui pe cel vechi fără a face prea mult deranj. Versiunea este 3.1.1 cea mai nouă versiune stabilă (2014), mai rapidă în indexarea fișierelor și ocupă mai puțină memorie când rulează, așa că nu avem motive să nu o folosim. O altă facilitate, mai mult estetică decât utilă, este prezența mai multor informații despre proces. Dacă vechea versiune afișa doar un cârnaț cu fișierele care sunt copiate, de data aceasta putem vedea procentul de fișiere procesate, viteza de scriere, timpul rămas, numărul total de fișiere și numărul de fișiere copiate deja. Ca și înainte, putem oricând întrerupe procesul de copiere și relua ulterior, fără să pierdem fișiere sau fără să le rescriem. Eu folosesc și opțiunea --delete, utilă pentru backup, care șterge din destinație fișierele care nu mai apar în sursă. În acest fel, sursa și destinația arată identic, altfel destinația păstrează fișierele vechi, care au fost șterse din folderul sursă. Așadar, al doilea pas este simplu și simplificat față de ce foloseam înainte:

rsync -a --delete --info=progress2 /Volumes/KAPPA/ /Volumes/DELTA/

Veți primi ceva eroare referitoare la unele foldere de sistem, .Trash și .DocumentRevisions-V100, eu o ignor. Putem forța rsync să ignore erorile, dar eu prefer să le văd, sau putem specifica anumite foldere care să fie excluse din copiere, dar nu voi face asta deocamdată.

Rezultatul arată ca în imaginea de mai jos:


(Cattus Thraex) #2

Ești măestru, nu știu cîți s-ar încumeta la operația asta.
Eu folosesc pt așa ceva SyncTwoFolders
http://throb.pagesperso-orange.fr
Băieții au și alte aplicații bine făcute. Pt bacup periodic am abandonat, sper temporar, iBackup, mi-a dat erori în Căpitan, dar la fel de bun este backupList +


#3

De asta folosesc rsync, sunt sigur că niciodată nu mă va lăsa la nevoie. Este o unealtă care vine cu sistemul (cel puțin până OS X rămâne ancorat în UNIX și sper ca asta să nu se schimbe prea curând) iar dacă mă mut pe Linux sau BSD, o voi putea folosi în continuare, nu trebuie să învâț nimic nou sau să dau bani pe soft third-party care după 5 ani dispare și mă lasă cu backupul în aer.


(Cattus Thraex) #4

Aplicațiile astea sînt, de fapt, o interfață pt rsync, nu inventează altceva.


#5

S-a simplificat procedura de upgrade al rsync mai nou:

brew tap homebrew/dupes
brew install rsync

… și gata!