Odmah na početku da riješimo ovo pitanje, jer osjećam kako se oči kolutaju nakon pročitanog naslova. Dakle, zašto bi netko uopće htio raditi backup s Linux stroja na Windows?
Odgovor je vrlo jednostavan – onaj tko nema puno opreme na raspolaganju i radi s onim što ima 😊
Kad imaš jedan Linux server i samo jedan Windows na raspolaganju koji na sebi ima praznog prostora u terabajtima, a backup se nekako treba raditi, izbor nije veliki. Pogotovo kad se ne može kupiti dodatna oprema poput NAS ili nešto slično.
Druga stvar da odmah riješimo; ovo nije backup u pravom smislu te riječi, već čisto kopiranje datoteka s jednog stroja na drugi.
Ovo je stvarna situacija koju sam imao, ali članak može poslužiti i kao koncept kako spojiti ova dva svijeta da rade željeni posao.
Ovaj članak zahtjeva poznavanje rada u Linux konzoli (terminalu) i osnove rada u Linux operativnom sustavu. Sve što bude trebalo konfigurirati na Linux strani, bit će rađeno kroz konzolu, tako da neću posebno naglašavati taj dio u članku.
Idemo vidjeti kako se to radi …
Predradnja
- Na Linux stroju provjeriti da li je instaliran SSH i rsync te rade li kako treba.
Ako nešto nedostaje, lako se instalira kroz naredbu.- Prvo naredba sudo apt-get update – da ažurira repozitorije instalacijskih paketa
- Druga naredba sudo apt-get install rsync – instalacija rsync paketa
- Na Windows stroju gdje će se spremati dokumenti, pod Optional Features treba ukloniti OpenSSH dodatak, jer inače neće rsync neće raditi

Podešavanje Windows stroja za primanje Linux naredbi
Pod ovim se podrazumijeva da Windows može primati i obrađivati Linux naredbe.
- Instalirati Cygwin: https://cygwin.com/install.html
- sve opcije mogu ostati na default
- kod odabira paketa odabrati rsync i openssh

- Dalje Next do kraja instalacije i pričekati da završi.
Ovime se dobila putanja C:\cygwin64 u kojoj su direktoriji isti kakvi se mogu naći na Linux instalacijama

Sve što radimo dalje u Windows, radimo preko Cygwin Terminal konzole koja se instalirala.
Cygwin Terminal konzola
Sve naredbe koje vrijede za Linux, vrijede i u ovoj konzoli na Windows.
Naredbom Mount vide se sve particije i diskovi koji su stavljeni u ovo Linux okruženje na Windows stroju te putanje kako doći do njih putem konzole. Ove informacije će nam trebati kasnije kad budemo slagali kopiranje dokumenata, da znamo odrediti putanju odredišta.

Podešavanje rsync i SSH da rade bez traženja lozinke
Komunikacija i kopiranje dokumenata će ići kroz siguran kanal zahvaljujući SSH. Međutim, općenita SSH komunikacija zahtjeva da se prilikom svakog uspostavljanja SSH veze unese korisničko ime i lozinka. Ovo nije baš praktično za ovu situaciju gdje želimo da kopiranje bude automatizirano i da može raditi po zadanom rasporedu.
Zato ćemo napraviti privatni i javni SSH ključ koji će kriptirati podatke i omogućiti SSH spajanje bez traženja lozinke.
Također je na Linux stroju potrebno imati korisnika (username i password) koji će moći obavljati radnju kopiranja. Korisnika napravite sukladno okruženju u kojem će se raditi.
Izrada SSH ključeva
- na BACKUP_DESTIONATION stroju (stroj na koji se sprema backup, u ovom slučaju je to Windows) u konzolu upisati:
ssh-keygen -t rsa -b 2048
Ovo kreira dva ključa koja se nalaze na putanji C:\cygwin64\home\username\.ssh

- Potrebno je kopirati .pub ključ na BACKUP_SOURCE stroj (stroj za koji se radi backup, u ovom slučaju je to Linux).
To se radi za korisnika koji će obavljati backup, u ovom slučaju je to korisnik “user”.
U istoj konzoli na BACKUP_DESTIONATION (Windows) stroju upisati:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@IP_Liunx_stroja
Primjer
ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.20.30
Tražiti će lozinku za korisnika “user”. Unijeti lozinku i to je to.
Sada je .pub ključ kopiran na Linux server i nalazi se pod /home/user/.ssh/ (datoteka authorized_keys)
Rsync više neće tražiti lozinku kada se koristi s korisnikom “user”.

- Nakon što je .pub kopiran na Linux (BACKUP_SOURCE), može se obrisati s Windows mašine (BACKUP_DESTIONATION) iz sigurnosnih razloga.
Podešavanje Task Scheduler za vremensko automatizirani backup
Za kraj ostaje na Windows stroju napraviti vremenski raspored koliko često da se kopiraju datoteke sa Linux stroja na Windows.
Otvoriti Task Scheduler
- New Task
- General tab
- Staviti Run whether user is logged on or not
- Triggers tab
- Staviti koliko često da se izvršava naredba za kopiranje
- Actions tab
- Program/script: C:\cygwin64\bin\bash.exe
- Arguments: -l -c “C:/cygwin64/bin/rsync.exe -v -r user@192.168.20.30:/home/u/Dokumenti/ /cygdrive/b/Backup”
Ovo govori da se pokrene bash.exe i onda da izvrši rsync naredbu za kopiranje sa Linux na Windows mašinu.
U navedenom primjeru se kopira mapa „Dokumenti“ od korisnika sa Linux stroja u mapu „Backup“ koja se nalazi na Windows stroju. Do te „Backup“ putanje smo došli korištenjem naredbe Mount ranije u članku.
Primijetite pod Arguments da su “/” za putanju, ne “\” kako je inače u Windows. Mora ovako biti jer inače ne radi naredba, Linux prepoznaje samo “/” znak.
- Program/script: C:\cygwin64\bin\bash.exe
Napomena
Kad se napravi backup od Dokumenti, dozvole foldera nisu prenesene, zato treba ići na Security > Advanced i maknuti sve Deny dozvole.
Nakon toga pristup dokumentima u backupu će raditi.
Zaključna riječ
Backup s Linux stroja na Windows; onaj tko se voli igrati, a pogotovo onaj koji je ograničen s opremom kako sam ja bio u ovom slučaju, može probati ovo rješenje za imati kopije dokumenata na drugom odvojenom stroju. Pogotovo kada su oba stroja različitog OS-a.
Ova stvar radi, SSH ključevi se brinu da bude kriptirano. Naravno, uz ovo sve, treba primijeniti i ostale mrežne sigurnosne stvari.