Rsync

OSX har et indbygget backup program i form af et "old-school" Unix program kaldet Rsync.
Med Rsync og SSH (secure shell, en internet protokol som tillader overførsel af data via et krypteret link) kan man sikkert lave en backup af sine data uanset hvor man befinder sig.

Kopiere filer med rsync

For at få en fornemmelse af hvordan Rsync virker, begynder vi med et lokalt eksempel på din egen computer..
Lav en ny folder i roden af dit directory og kald det bob.
Lad os sige at at bob er vores remote server, og at vi vil lave en backup af nogle filer i vores hjemmebibliotek - f.eks. mappen mine_opgaver
Start Terminal (/Programmer/Hjælpeprogrammer) og skriv:

rsync -a /Users/brugernavn/Documents/mine_opgaver/ /bob

Erstat brugernavn med dit rigtige brugernavn og tryk return.
rsync kommandoen starter programmet, mens -a argumentet sætter Rsync i archive mode, som betyder, at alt kopieres fra mine_opgaver til bob inclusive undermapper og file permissions.
Stien til kilden (Documents/mine_opgaver) og stien til bestemmelsesstedet (bob) følger respektivt.

Hvis der ikke skal kopieres ret meget vil processen hurtigt være udført. Når prompten ses igen i Terminal er opgaven udført.
Prøv nu at se på indholdet i bob.

Ændringer

Prøv at lave en ny folder i mine_opgaver og kald den f.eks dummy1
Kør kommandoen engang til - hvis du stadig har terminalen åben kan du få den tidligere kommando op igen ved at trykke på op-piletasten.
Se igen på indholdet i bob. Nu er tilføjet folderen dummy1. Prøv at lave nogle flere forandringer i mine_opgaver og kør kommandoen igen.

Aktivere SSH

Vi vil nu prøve at connecte til en anden computer på netværket. Vi bruger en anden MacComputer med OSX som er koblet op på Ethernet.
På den computer "remote server" som der skal kopieres til går du ind i Systemindstillinger -> Deling -> Tjeneste. Her aktiverer du Ekstern log ind (sørg også for at computeren ikke kan gå på sleep).
Når Ekstern log ind er aktiveret vil du se en adresse på computeren. Skriv den ned.
Lav en mappe i roden på "remote server" som du f.eks. kalder bobs_opgaver.

Gå tilbage til din lokale computer.
Vi bruger noget af det vi allerede har erfaret men lidt anderledes.

Kommandoen skal nu se sådan ud, idet vi antager, at den lokale computer har brugernavnet brugernavn1 og den "remote server" har brugernavnet brugernavn2 og ip-adressen 192.168.1.2:

rsync -ave ssh /Users/brugernavn1/Documents/mine_opgaver/ brugernavn2@192.168.1.2:/bobs_opgaver

Tryk return.
Hvis det er første gang du prøver, vil du i terminalen se noget der ligner flg.:

Last login: Wed Dec  1 16:48:31 on console
Welcome to Darwin!
Bruger-G4:~ brugernavn1$ rsync -ave ssh /Users/brugernavn1/Documents/mine_opgaver/ brugernavn2@192.168.1.2:/bobs_opgaver
The authenticity of host '192.168.1.2 (192.168.1.2)' can't be established.
RSA key fingerprint is 8b:35:47:4e:23:5b:78:7e:2c:ab:4c:64:d3:94:af:cd.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '192.168.1.2' (RSA) to the list of known hosts.
brugernavn2@192.168.1.2's password: 
building file list ... done
./
.DS_Store
Mrwade smith letter.doc
Opg2 translation.doc
dummy1/

wrote 49984 bytes  read 80 bytes  953.60 bytes/sec
total size is 49668  speedup is 0.99
Bruger-G4:~ brugernavn$ 

Vi har brugt nogle yderligere argumenter udover -a.
-v står for verbose som betyder, at vi kan se i terminalen hvad der overføres.
-e argumentet fortæller Rsync at det skal bruge et andet program til fil overførsel og følges af betegnelsen for den protokol der skal anvendes - ssh.
Samtidig genereres en RSA-key (krypteringsnøgle).
Ved password skal man indtaste det password som brugeren brugernavn2 har til den "remote server".
Næste gang man laver en back-up (eller logger ind via ssh) skal man kun skrive sit password (brugernavn2).

Med anvendelse af de korrekte stier på henholdsvis den lokale computer som den "remote server" er det muligt at lave en identisk backup. Og sådan at programmer på den "remote server kan bruge de overførte biblioteker.
Men vær opmærksom på, at de navne du ser i Finder (dansk) ikke nødvendigvis svarer til de navne der skal bruges i Terminal.

Stien til f.eks. iPhoto kan lokalt være

/Users/brugernavn1/Pictures/"iPhoto Library"/

og på den "remote server"

/Users/brugernavn2/Pictures/iPhoto/

Som med flere Unix-ting der kan foretages i terminal er al begyndelse svær og det kan virke uoverskueligt.
Men først lært, er det lige ud af landevejen og den simpleste ting i verden.
Skriv dine kommandoer i et shell-sript og det er bare et klik!

F.eks. sådan - eget eksempel:

#!/bin/sh
# synkronisere billeder paa min desktop G4 med min PowerBook G4
rsync -ave ssh /Users/brugernavn1/Pictures/"iPhoto Library"/ brugernavn2@192.168.1.2:/Users/brugernavn2/Pictures/iPhoto/

Anvisningen skrives uden ansvar og det er på egen risiko hvad du foretager dig!

Links:

Rsync man page