Ján Fečík


osobná stránka · blog

Dátum: streda, 24. apríla 2024
Čas: 00:34:02, 1713911642, @981
Meniny má: Juraj, Fidél
IP adresa: 3.143.168.172

Ako na RSYNC cez Windows?

Minulý rok v jeseni som riešil celkové zálohovanie serveru a ako to vôbec spraviť aby to bolo samozrejme v poriadku. Použil som na to miniPC Intel NUC s tými najnižšími parametrami čo bol na sklade. Mal som v pláne naň nainštalovať FreeBSD, ale keďže podpora bola veľmi mizerná tak som musel siahnuť po linuxovej distribúcií Ubuntu 14.04 a to tam beží nonstop od jesene minulého roka. Hľadal som rôzne možnosti ako čo najjednoduchšie spraviť automatické zálohovanie a nakoniec som to spravil pomocou RSYNC, čo bola asi jediná normálna možnosť. Keďže záloh nie je nikdy dosť, tak som tento Intel NUC geograficky premiestnil z domu na iné miesto a doma si vyhradil na disku 500 GB len pre zálohy.

Nepoužívate RSYNC a SSHFS?  ·  Bolestivý prechod na Windows 11

Keď som mal posledný mesiac trochu viac času, tak som riešil opäť to isté ako v jeseni minulého roka a to, že ako spraviť niečo podobné čo je na miniPC, ale tento krát na Windows platforme, keďže na domácom PC mi beží Windows 7. Mal som aj záložné riešenie a to, že by som si cez trebárs VirtualBox spojazdnil FreeBSD, či nejakú linuxovú distribúciu a riešil zálohu tak isto ako na miniPC. Nechcel som ale zbytočne obsadzovať miesto a systémové prostriedky zbytočným systémom, ktorý by mi bežal pod Windows 7. Aj keď mám i7 990x čo je 6 jadrový CPU s HT, čiže dokáže spracovať naraz až 12 threadov, tak som ho nechcel zbytočne obťažovať nejakým ďalším spusteným systémom pod už iným spusteným systémom.

Obzeral som sa po internete a hľadal akúkoľvek možnosť, kde sa len spustením bez zadávania hesla a mojej interakcie spraví na tento vyhradený oddiel aktuálna záloha zo servera. Našiel som pár platených nástrojov, ktoré vraj niečo také dokážu, ale platiť za takú triviálnosť od 50€ do 100€ sa mi veru ani trochu nechcelo a keď som to prepočítal na pivo, tak som nad takou možnosťou ďalej ani nepremýšľal. Pred týždňom som ale narazil na vynikajúci projekt, ktorý ma tiež mohol napadnúť už skôr, ale nikdy som to nepotreboval, tak ma to ani netrklo. Hovorím o projekte Cygwin, čo je zbierka nástrojov pre Linux určených pre platformu Windows. Nie je tam síce 100% podpora ako som spozoroval pri jednej veci čo som chcel využiť, ale RSYNC sa mi tam podarilo spojazdniť.

Čiže Cygwin sa dá stiahnuť na ich stránke buď 32-bitová verzia, alebo 64-bitová. Keďže mám Windows 7 64-bit, tak som stiahol 64-bitovú a spustil ju. Inštaláciu stačí takto odklikať:Ako na RSYNC cez Windows?Ako na RSYNC cez Windows?Ako na RSYNC cez Windows?Ako na RSYNC cez Windows?Ako na RSYNC cez Windows?Ako na RSYNC cez Windows?Ako na RSYNC cez Windows?Tu si nájdete rsync a zvolíte pri ňom Install, ja som si navyše pridal wget, ktorý budem potrebovať na iné možnosti zálohovania skrz podpory autentifikácie. Mám pocit, že som tam zaškrtol aj openssh, ale to si už veru nepamätám, tak si pre istotu dajte aj pri ňom Install.Ako na RSYNC cez Windows?Ako na RSYNC cez Windows?Ako na RSYNC cez Windows?Inštalácia prebehla úspešne a to je to čo sme chceli dosiahnúť. Keď som pozrel koľko adresár Cygwin zaberá miesta na disku, tak som až zbledol. Mať obsadených 600 až 700 MB kvôli RSYNC mi prišlo utiahnuté za hlavu a hneď som šiel skúsiť či to bude možné vykuchať až na kosť. Podarilo sa mi to s bashom zmenšiť na 16 MB, čo už bolo pekné číslo. Ak sa chcete tiež zbaviť zbytočného balastu a budete to používať len kvôli RSYNC ako ja, tak si niekde vytvorte adresár a v ňom vytvorte adresáre a nahrajte s Cygwin dané súbory či adresáre čo sú uvedené nižšie:

backup (adresar) > toto je môj adresár, kam zálohujem dáta
bin (adresar) > bash.exe, cygcom_err-2.dll, cygcrypto-1.0.0.dll, cygffi-6.dll, cyggcc_s-seh-1.dll, cyggmp-10.dll, cyggnutls-28.dll, cyggssapi_krb5-2.dll, cyghogweed-2.dll, cygiconv-2.dll, cygidn-11.dll, cygintl-8.dll, cygk5crypto-3.dll, cygkrb5-3.dll, cygkrb5support-0.dll, cygncursesw-10.dll, cygnettle-4.dll, cygp11-kit-0.dll, cygpcre-1.dll, cygreadline7.dll, cygssp-0.dll, cygtasn1-6.dll, cyguuid-1.dll, cygwin1.dll, cygz.dll, hostname.exe, id.exe, locale.exe, rsync.exe, ssh.exe, tzselect, tzset.exe, wget.exe
etc (adresar) > pki (adresar), ssl (adresar), profile
home (adresar) > User (adresar)
tmp (adresar)
usr (adresar) > ssl (adresar)

Týmto sme sa dostali na spomínaných 16 MB, pričom funkčnosť RSYNC zostala zachovaná. RSYNC spojazdníte ďalej cez bash.exe. Ja som si to vyriešil pomocou bat súboru, kde mám takto spracovaný príkaz:

rsync -avz -e "ssh -i /home/User/.ssh/ssh.key" meno@nazovservera:/adresar/ /backup/ --ignore-existing > /tmp/backup

Ten som si uložil do /home/User/backup.sh a do bat súboru som pridal spustenie cez bash:

/bin/bash.exe -l -c "/home/User/backup.sh"

ssh.key je kľuč na prihlásenie sa na server a pre moju pohodlnosť aby som nemusel neustále zadávať heslo. Ako si vytvoriť takýto kľúč som spomínal v článku ako na RSYNC a SSHFS v Linuxe, kde je aj postup ako si RSYNC spojazdniť.

Výhoda Linuxu, resp. *nix systémov je to, že disponujú cronom, kam sa dajú jednoducho pridať úlohy ktoré sa majú v nastavenom čase spracovať. Windows ale nič také nemá, šlo by to ale riešiť cez ten Cygwin, lebo som v ňom zazrel takú možnosť a tiež obsahuje cron, pričom ten sa dal spojazdniť ako nejaká služba vo Windowse. S tým sa mi nechcelo vôbec hrať, keďže oddiel na zálohu mam šifrovaný a vždy po zapnutí musím zadať heslo. Preto som si vyriešil len jednoduchým bat súborom, ktorý pár krát za deň spustím. Ak by sa ale niekomu s tým cronom cez Cygwin nechcelo hrať aby ho spojazdnil, tak tu je ešte jedná možnosť a to využiť plánovač úloh čo je taká ekvivalencia cronu v Linuxe. Tu by som spomenul utilitu Hidden start (hstart) zo staršieho članku Automatické zálohovanie dát kde som ju odporúčal. Problém plánovača úloh vo Windowse spočíva v tom, že ak by som do plánovača úloh vo Windowse pridal tento RSYNC, tak by sa vždy v daný čas otvoril príkazový riadok kde by bolo vidieť, že sa RSYNC spustil a bol by otvorený až kým by neukončilo spojenie. Hidden start (hstart) slúži práve na to, aby sa konzolové aplikácie cez plánovač úloh spracovali na pozadí a užívateľ nemal ani potuchy o tom, že je niečo spustené. Čiže to dávam ako druhú možnosť ak potrebujete vytvárať plánované zálohy, či na čokoľvek iné na čo RSYNC budete potrebovať.

Článok bol zobrazený 5547 krát a obsahuje 1032 slov
Pridané 11. apríla 2016