Ján Fečík


osobná stránka · blog

Dátum: piatok, 29. marca 2024
Čas: 11:13:33, 1711707213, @467
Meniny má: Miroslav, Mieroslav
IP adresa: 44.204.217.37

Nepoužívate RSYNC a SSHFS?

Pred pár mesiacmi som potreboval spraviť automatickú zálohu súborov (približne milión fotografií) zo serveru, ktorá by prebiehala najlepšie každú hodinu a teda bez môjho vedomia. Chcel som mať čo najaktuálnejšiu zálohu v prípade nejakého problému a vedel som, že najlepšie je na takéto niečo použiť RSYNC. V prípade nejakého problému to zas cez SSHFS dostať späť na server, keďže ako klienta, resp. počítač na zálohu používam mini počítač za NATom a nemá verejnú IP adresu pre prístup z internetu. Po prečítaní pár článkov sa mi to podarilo spojazdniť, aj odladiť a jeden krát mi táto záloha už celkom dosť pomohla.

Ako na RSYNC cez Windows?  ·  Chybovať je ľudské, ale blbé

Takže som celkom rád, že to funguje ako má a ako som samozrejme chcel. Možno si to niekedy v budúcnosti vylepším, ale mám si v pláne zaobstarať NAS s kapacitou 24TB a takto môžem mini počítač presúnuť geograficky inde a budem mať pre istotu dve železné zálohy.Nepoužívate RSYNC a SSHFS?Kopírovať súbory pomocou FTP na server, alebo naopak je celkom hrôza, hlavne ak chce niekto robiť automatické zálohy. Tu prichádza na scénu RSYNC, ktorý prenáša iba zmenené súbory a podporuje navyše aj kompresiu. Protokol RSYNC slúži na prenos súborov z jedného alebo viacerých zdrojov do cieľového umiestnenia. Prenos sa môže uskutočniť v rámci jedného počítača, ale aj medzi dvoma počítačmi prepojených sieťou alebo cez internet. Zálohu môžete spraviť pomocou príkazu:

rsync login@server:/dir/ /backup/server/

Príkaz si vypýta heslo a buď budete heslo stále zadávať alebo sa budete pripájať pomocou svojho kľúča, čo je v prípade nejakej automatickej zálohy oveľa praktickejšie riešenie. Toto je príklad príkazu čo používam:

rsync -avz -e "ssh -i /ssh_key/server.key" login@server:/dir/ /backup/server/ --ignore-existing

Týmto sa mi zachová oprávnenie, vlastník a čas prenášaných súborov. Zvýši sa miera výpisov počas behu rsync (tieto výpisy si rotujem za posledný týždeň len tak informačne), taktiež sa počas prenosu komprimujú súbory, čo je celkom výhodne ak chcem týmto zálohovaním znížiť traffic a posledné nastavenie je preskočenie súborov, ktoré sú už zálohované.

Ak nemáte ešte vygenerovaný vlastný pár SSH kľúčov, tak zadajte do konzoly príkaz ssh-keygen, presnejšie v tomto tvare ako je uvedené nižšie:

ssh-keygen -t rsa

Prepínačom -t zvolíte typ vygenerovaných kľúčov, pričom RSA najbezpečnejšou dostupnou voľbou. Príkaz sa opýta na cestu kam má kľúče uložiť a tiež aj na heslo, ktorým sa kľúče zašifrujú. Kľúče môžete na disk uložiť aj nešifrované, ale nie je to najmúdrejšia voľba a odporúčam zadať silné heslo (passphare). Po tomto kroku sú kľúče vygenerované do adresára .ssh vo vašom domovskom adresáre, pokiaľ ste nezvolili inú cestu pre uloženie. Následne sa pripojte na server a do adresára ktorý patrí ku kontu cez ktoré sa budete prihlasovať vytvorte adresár .ssh (áno, na začiatku je bodka). Do tohto adresára nahrajte súbor z vášho domovského adresára, ktorý sa uložil do .ssh/id_rsa_pub a premenujte ho authorized_keys. Tento súbor obsahuje zoznam verejných kľúčov, ktoré sú oprávnené prihlásiť sa k danému kontu. Pokiaľ tam authorized_keys nemáte, tak vďaka postupu s premenovaním ste si uložili váš prvý vlastný verejný ssh kľúč. V súbore môže byť viac verejných kľúčov ako som spomínal, na každom riadku jeden. Dôležité je aby bol každý jeden verejný kľúč uložený bez zalomenia (ako jeden dlhý riadok).

Server máme tým pádom vybavený a na počítači zostal vo vašom domovskom adresáre súbor .ssh/id_rsa, ten použijete pri pripájaní sa na server bez použitia hesla. Ja som si svoj ako som vyššie uviedol umiestnil do /ssh_key/server.key aby som mal kľúče pohromade na jednom mieste. V mojom prípade má nejaká bezpečnosť moc nezaujíma, lebo sa jedná o počítač za NATom a firewallom. RSYNC som si pridal do cronu, ktorý mi ho spúšťa každú hodinu a o viac sa tým pádom nestarám kým zálohu nebudem potrebovať. Samozrejme sa mi záloha raz za týždeň automaticky premazáva, takže mi to tam nerastie do terabajtových veľkostí.

Ako som na začiatku spomínal, tak som túto zálohu už jeden krát použil a za behu som premýšľal, ako ju čo najrýchlejšie dostať na server a tu prichádza na rad SSHFS. SSHFS alebo SSH File System je bezpečnostný protokol pre komunikáciu medzi počítačmi a slúži k pripojeniu vzdialeného súborového systému do lokálneho adresárového stromu pomocou šifrovaného spojenia SSH. Na server nie je nutné okrem SSH nič ďalšie konfigurovať a klientovi je len potrebné nainštalovať balíček sshfs. Pripojenie súborového systému využíva technológiu FUSE a vzdialený adresár je možné pripojiť bez nutnosti použitia administrátorského prístupu. SSH tiež spojenie šifruje, takže nikto nemôže súbory pri presúvaní po sieti či internete vidieť. Pripájať sa môžete pomocou príkazu:

sshfs login@server:/dir/ /mnt/server/

Príkaz si ako v prípade RSYNC vypýta heslo, pokiaľ nemáte vygenerovaný svoj kľúč. Čiže buď budete heslo stále zadávať alebo použijete ako v prípade RSYNC pripojenie s pomocou svojho kľúča. Svoj kľuč máte vo vašom domovskom adresáre .ssh/id_rsa a tak sa pripojíte automaticky s použitím vášho kľúča. Pokiaľ ste ho premiestnili, tak je k nemu potrebné zadať cestu a príkaz bude vyzerať takto:

sshfs login@server:/dir/ /mnt/server/ -o IdentityFile=/ssh_key/server.key

Snáď niekomu tento článoček pomôže a uvidí ešte väčšie výhody rsyncu či sshfs ako zatiaľ pomáhajú mne takýmto spôsobom a dúfam, že dlho aj budú.

Článok bol zobrazený 4354 krát a obsahuje 853 slov
Pridané 10. septembra 2015