Backup s Linux stroja na Windows

Vrijeme čitanja: 5 min

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

  1. 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
  2. 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.

  1. Instalirati Cygwin: https://cygwin.com/install.html
    • sve opcije mogu ostati na default
    • kod odabira paketa odabrati rsync i openssh
       
  1. 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

  1. 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

  1. 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”.

  1. 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

  1. New Task
  2. General tab
    • Staviti Run whether user is logged on or not
  3. Triggers tab
    • Staviti koliko često da se izvršava naredba za kopiranje
  4. 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.

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.

AUTOR
Picture of Hrvoje Matešić

Hrvoje Matešić

KAVA

Sviđa ti se pročitano?

Revolut QR

MOGLO BI TE ZANIMATI
PODIJELI ČLANAK
PRETPLATI SE
Saznaj kad napišem novi članak
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments