Nenad Božidarević

Bash skripta za backup podataka


Hteo bih sa vama da podelim jednu veoma jednostavnu Bash skriptu za backup podataka. (Možda čak ne bi ni trebalo da je nazivam skriptom, s obzirom da je u pitanju samo jedna komanda.)

Otkad sam u potpunosti prešao na Linux, odnosno Ubuntu, Windows je iza sebe ostavio slobodnu jednu particiju od 120GB koju sam koristio za čuvanja podataka. Kada je postalo tesno, kupio sam još jedan hard disk, a ovaj odlučio da iskoristim za backup određenih podataka koje nikako ne želim da izgubim – kako lične, tako i “poslovne” prirode.

Skipta zapravo koristi program rsync koji vrši sinhronizaciju podataka. Ovo je vrlo korisno kada je u pitanju backup, zato što pri svakom pokretanju kopira samo nove i izmenjene fajlove. Ručno kopiranje bi zahtevalo ili overwrite starih fajlova, ili naknadno kopiranje svakog izmenjenog fajla posebno. Parametri za rsync su folderi koji se kopiraju i folder u koji se kopira. U mom slučaju to izgleda ovako:

#!/bin/sh
rsync -avv /media/data/Files /media/data/Pictures /media/backup

Dakle, prva dva parametra (ne računajući -avv) su folderi koji se kopiraju, a poslednji parametar je folder u koji se ti podaci kopiraju. Pritom, ova skripta neće brisati fajlove koji se nalaze u backupu, a nema ih na originalnoj lokaciji. Da bi se obezbedila i ova funkcionalnost, potrebno je dodati parametar --delete.

Na ovaj način, rsync kopira određene foldere, a ne njihov sadržaj. Ukoliko neko želi da kopira samo sadžaj određenog foldera, na primer sve što se nalazi na disku data, sintaksa bi bila sledeća:

#!/bin/sh
rsync -avv /media/data/ /media/backup

Jedina razlika je to što je dodata kosa crta na kraju putanje – ona označava sadržaj foldera, dok se bez nje kopira sâm folder.

Naravno, najbolji resurs je rsync man stranica. Ja skriptu pokrećem ručno, s vremena na vreme, ali verovatno bi bila dobra ideja automatizovati njeno izvršenje, recimo pomoću Cron-a.

Postavi komentar