Blog o spletnem programiranju in elektroniki
💬 👤
back Nazaj na blog
Linux

Kako narediti varnostno kopijo v Linuxu: rsync, tar in cron

Varnostna kopija (backup) je edina obramba pred izgubo podatkov — odpoved diska, napaka pri ukazu rm, virus ali kraja računalnika lahko v trenutku uničita leta dela. V tem članku si bomo ogledali, kako v Linuxu naredimo varnostno kopijo z orodji, ki so že v sistemu: rsync, tar in cron. Brez dodatnih programov, brez oblaka, brez stroškov.

Zlati standard: pravilo 3-2-1

Preden se lotimo orodij, poglejmo splošno sprejeto pravilo varnostnega kopiranja:

  1. 3 kopije podatkov — izvirnik plus dve varnostni kopiji
  2. 2 različni medija — npr. notranji disk in zunanji USB disk
  3. 1 kopija izven lokacije — prijatelj, sef ali šifriran oblak

Zakaj toliko kopij? Ker odpadejo stvari, ki si jih ne predstavljamo: zunanji disk, ki leži ob računalniku, pogori skupaj z njim, če pride do požara ali vloma.

rsync — kralj sinhronizacije

rsync je najbolj priljubljeno orodje za varnostne kopije v Linuxu. Njegova največja prednost je, da prenaša samo spremenjene dele datotek — prva kopija traja dolgo, vse nadaljnje pa so hitre.

# Osnovna kopija domače mape na zunanji disk
rsync -av ~/ /media/uporabnik/zunanji-disk/rezerva/

# Razlaga stikal:
# -a (archive) ohrani pravice, čase, simbolične povezave
# -v (verbose) izpisuje, kaj se kopira

Najpogosteje uporabljena oblika vključuje še stikalo --delete, ki ima pomembno past:

# Kopija, ki je povsem enaka izvirniku
# (izbriše datoteke na cilju, ki jih ni več v izvirniku!)
rsync -av --delete ~/ /media/uporabnik/zunanji-disk/rezerva/

POMEMBNO: Bodite pozorni na zaključno poševnico (/) pri izvorni poti! ~/ pomeni vsebino mape, ~ pa mapo samu. Napačna poševnica lahko povzroči gnezdene mape ali neželeno brisanje.

Uporabna dodatna stikala:

Stikalo Pomen Kdaj uporabiti
--delete Izbriše na cilju, česar ni v izvirniku Zrcalne (mirror) kopije
--dry-run Samo simulacija — nič se ne spremeni Vedno pred prvim zagonom!
-z Stiska podatke med prenosom Kopija čez omrežje
--exclude Izloči mape ali datoteke --exclude="cache/*"
--progress Prikaže napredek Večje kopije

rsync prek omrežja (SSH)

Če imate doma drug računalnik ali strežnik, lahko kopirate prek SSH — podatki so med prenosom šifrirani:

# Kopija domače mape na oddaljeni strežnik
rsync -avz ~/backup/ uporabnik@192.168.1.20:/mnt/rezerva/

# In obratno — obnovitev s strežnika
rsync -avz uporabnik@192.168.1.20:/mnt/rezerva/ ~/backup/

Za povezavo brez vsakokratnega vpisa gesla si nastavite SSH ključe (glej članek o SSH).

tar — arhiv na enem mestu

Kjer rsync dela z živo kopijo map, tar ustvari eno samostojno arhivsko datoteko. Primerno je za shranjevanje na drug disk ali prenos v oblak:

# Ustvari stisnjen arhiv domače mape z datumom
tar -czvf rezerva-$(date +%Y-%m-%d).tar.gz ~/

# Razlaga stikal:
# -c (create) ustvari arhiv
# -z (gzip) stiskanje z gzip
# -v (verbose) izpisuje datoteke
# -f (file) ime izhodne datoteke

Obnova iz arhiva:

# Odpakiraj arhiv v trenutno mapo
tar -xzvf rezerva-2026-09-03.tar.gz

# Odpakiraj v določeno mapo
tar -xzvf rezerva-2026-09-03.tar.gz -C ~/obnovljeno/

Nasvet: Arhivom dodajte datum v ime (kot zgoraj z $(date +%Y-%m-%d)), da imate zgodovino kopij in veste, kdaj je bila katera narejena.

cron — samodejno kopiranje

Najboljša varnostna kopija je tista, ki se naredi sama. Z cron-om lahko nastavimo samodejno izvajanje ponoči:

# Odpri urnik svojega uporabnika
crontab -e

# Dodaš vrstico: vsak dan ob 23:00 izvedi rsync
0 23 * * * rsync -a --delete ~/dokumenti/ /media/uporabnik/zunanji-disk/rezerva/

Razlaga polj cron-a (pet stolpcev pred ukazom):

Polje Vrednost v primeru Pomen
Minuta 0 Točno ob polnoči ure nič minut
Ura 23 Ob 23:00
Dan v mesecu * Vsak dan
Mesec * Vsak mesec
Dan v tednu * Vse dni v tednu

Preverjanje, ali se je naloga izvedla, je najlažje z dnevnikom:

# Dnevnik cron-a
grep CRON /var/log/syslog

# Ali pošlji izpis ukaza v svojo dnevniško datoteko
0 23 * * * rsync -a ~/dokumenti/ /media/rezerva/ >> ~/backup.log 2>&1

Šifrirana kopija

Kopija na zunanjem disku ali v oblaku naj bo šifrirana — kraden disk pomeni, da so podatki preprosto odprti. V Linuxu je na voljo cryptsetup in LUKS za šifriranje celega diskovnega oddelka, enostavnejša pot pa je gpg:

# Najprej ustvari arhiv, nato ga šifriraj z geslom
tar -czf - ~/dokumenti | gpg -c -o rezerva.tar.gz.gpg

# Obnova: odšifriraj in odpakiraj
gpg -d rezerva.tar.gz.gpg | tar -xzvf -

Šifrirana kopija, ki jo odnesete k prijatelju ali v sef, zadovolji tretji del pravila 3-2-1 — izven lokacije, a varna pred tujci.

Kdaj katero orodje?

Orodje Kdaj ga uporabiti Slabost
rsync Redne kopije na zunanji disk ali strežnik Zrcalna kopija brez zgodovine (brez --backup)
tar Občasni arhivi, ki jih prenašate drugam Vedno kopira vse znova
tar + gpg Kopije, ki zapustijo vaš dom Počasneje, geslo morate imeti shranjeno varno
cron + rsync Samodejno vsakodnevno kopiranje Zahteva, da je ciljni disk priklopljen

Pogoste napake

  1. Nobenega preizkusa obnove: Kopija, ki je nikoli niste obnovili, morda ne deluje. Obnovo preizkusite, preden jo potrebujete
  2. --delete brez --dry-run: Eden najhitrejših načinov za izgubo podatkov. Vedno najprej simulirajte
  3. Kopija na istem disku: Ko odpade disk, odpadejo skupaj izvirnik in kopija
  4. Nešifriran zunanji disk: Izgubljen USB disk z davčnimi dokumenti je kraj podatkov
  5. Zaupanje samo oblaku: Oblak je odvisen od ponudnika in internetne povezave — imejte lokalno kopijo vsaj za najpomembnejše podatke

Zaključek

Varnostna kopija ni vprašanje ali, temveč kdaj se bo disk pokvaril ali kdaj boste pomotoma izbrisali napačno mapo. Z rsync-om, tar-jem in cron-om ima vsak Linux uporabnik pri roki popolno orodjarno za varnostno kopiranje — brezplačno in brez odvisnosti od zunanjih storitev. Začnite že danes: ena vrstica v crontab-u in zunanji disk sta lahko razlika med nadlogo in rešitvijo.

back Nazaj na blog