Preskočiť na obsah

Prenos dát

Prenos súborov medzi lokálnym počítačom a vzdialeným serverom je možné uskutočniť cez terminál (konzolu) pomocou príkazov scp, rsync a sftp, pozri nižšie. Ďalšou populárnou možnosťou na prenos súborov je použitie klientov pre Windows MobaXterm alebo WinSCP. Príklady použitia týchto nástrojov nájdete nižšie.

Prenos dát medzi lokálnym a vzdialeným počítačom

Použitie terminálu (konzoly)

Tieto možnosti sú dostupné bez dodatočnej inštalácie softvéru na systémoch macOS, Linux a Windows 11 (PowerShell). Príkazy scp, rsync a sftp sa musia spustiť z lokálneho počítača. Viac informácií o týchto príkazoch získate zadaním man scp, man rsync alebo man sftp v termináli (konzole), prípadne na webových stránkach pre scp, rsync alebo sftp.

Príkaz scp: základná syntax

scp (secure copy protocol) je sieťový protokol na bezpečné kopírovanie súborov a adresárov. scp umožňuje prenášať súbory alebo adresáre medzi lokálnym a vzdialeným hostiteľom alebo medzi dvoma vzdialenými hostiteľmi. Ak chcete kopírovať súbor do adresára, v ktorom sa práve nachádzate, použite bodku na konci príkazu.

Všeobecná syntax príkazu scp:

scp [options] [user@local_host]:<source_path> [user@remote_host]:<destination_path>

Kopírovanie dátových súborov a adresárov z lokálneho počítača na vzdialený server.

scp -P 5522 <path-to-source-file-on-local-computer> <username>@login.<cluster>.sav.sk:<path-to-destination-file-on-cluster>
scp -r -P 5522 <path-to-source-folder-on-local-computer> <username>@login.<cluster>.sav.sk:<path-to-destination-folder-on-cluster>

Kopírovanie dátových súborov a adresárov zo vzdialeného servera do lokálneho počítača.

scp -P 5522 <username>@login.<cluster>.sav.sk:<path-to-source-file-on-cluster> <path-to-destination-file-on-local-computer>
scp -r -P 5522 <username>@login.<cluster>.sav.sk:<path-to-source-folder-on-cluster> <path-to-destination-folder-on-local-computer>
scp -r -P 5522 <username>@login.<cluster>.sav.sk:<path-to-source-folder-on-cluster> .

Príkaz rsync: základná syntax

rsync sa dá použiť na zrkadlenie dát, kopírovanie súborov medzi systémami, zálohovanie a ako náhrada za scp, sftp a cp. Jeho výhodou je, že znižuje množstvo prenášaných dát tým, že prenáša len rozdiely medzi zdrojovými súbormi a súbormi už prítomnými na cieľovom mieste, čo ho robí reštartovateľným. Ak chcete prenášať väčšie množstvo súborov, odporúča sa použiť príkaz rsync, pretože spojenie môže zlyhať na jednej alebo druhej strane alebo môžu nastať iné nešpecifikované problémy. rsync sa dá použiť spoločne s protokolom SSH pomocou možnosti-e.

Všeobecná syntax rsync je:

rsync [options] [user@local_host]:<source_path> [user@remote_host]:<destination_path>

Kopírovanie súboru z lokálneho počítača na vzdialený server.

Na zobrazenie priebehu prenosu dát z lokálneho počítača na vzdialený server použite možnosť --progress alebo -P.

rsync -avhe "ssh -p 5522" <path-to-source-file-on-local-computer> <username>@login.<cluster>.sav.sk:<path-to-destination-file-on-cluster>
rsync -avhe "ssh -p 5522" --progress <path-to-source-file-on-local-computer> <username>@login.<cluster>.sav.sk:<path-to-destination-folder-on-cluster>
rsync -avhe "ssh -p 5522" -P <path-to-source-file-on-local-computer> <username>@login.<cluster>.sav.sk:<path-to-destination-folder-on-cluster>

Kopírovanie súboru zo vzdialeného servera do lokálneho počítača pomocou SSH.

rsync -avhe "ssh -p 5522" <username>@login.<cluster>.sav.sk:<path-to-source-file-on-cluster> <path-to-destination-file-on-local-computer>

Kopírovanie adresára zo vzdialeného servera do lokálneho počítača pomocou SSH.

rsync -avhe "ssh -p 5522" --progress <username>@login.<cluster>.sav.sk:<path-to-source-folder-on-cluster> <path-to-destination-folder-on-local-computer>
rsync -avhe "ssh -p 5522" -P <username>@login.<cluster>.sav.sk:<path-to-source-folder-on-cluster> <path-to-destination-folder-on-local-computer>

Nasledujúce možnosti sa bežne používajú s rsync:

  • -a - Archivačný režim; zachováva práva prístupu k súborom a nasleduje symbolické odkazy. Archivačný režim nezachováva pevné odkazy, pretože hľadanie viacnásobne prepojených súborov je náročné. Pre pevné odkazy je potrebné explicitne špecifikovať možnosť -H.

  • -v - Zapne podrobný režim a zobrazí rozšírené informácie.

  • -h - Vypíše čísla v ľudsky čitateľnom formáte.

  • -P alebo --progress - Zobrazí priebeh počas prenosu.

  • -e - Vyberie vzdialený shell, v tomto prípade SSH. Možnosť -e sa musí umiestniť pred "ssh -p 5522" v reťazci možností; dá sa zapísať ako rsync -avhe "ssh -p 5522" alebo rsync -avh -e "ssh -p 5522".

  • -z - Zapne kompresiu a komprimuje dáta súborov počas prenosu.

Príkaz sftp: základná syntax

sftp (secure file transfer protocol) je šifrovaný protokol na prenos súborov cez sieťové spojenie. Vykonáva všetky operácie cez šifrovanú SSH reláciu s využitím jej funkcií, ako je autentifikácia pomocou verejného kľúča a kompresia dát.

  1. sftp sa môže spustiť v interaktívnej relácii, ktorá sa prihlási na špecifikovaného hostiteľa, kde je možné zadávať príkazy na výzve.

Spustenie interaktívnej relácie na clustri alebo v konkrétnom adresári.

sftp -P 5522 <username>@login.<cluster>.sav.sk
sftp -P 5522 <username>@login.<cluster>.sav.sk:<path-to-starting-folder-on-cluster>
  1. sftp sa dá tiež použiť na automatický prenos súborov bez interakcie používateľa, a to v batch režime (spúšťanie pomocou skriptu).

Kopírovanie súboru zo vzdialeného servera do lokálneho počítača pomocou sftp.

sftp -P 5522 <username>@login.<cluster>.sav.sk:<path-to-source-file-on-cluster> /<path-to-destination-file-on-local-computer>
sftp -b batchfile -P 5522 <username>@login.<cluster>.sav.sk:/home/<username> /<path-to-destination-folder-on-local-computer>

kde batchfile obsahuje:

   cd <path-to-destination-folder-on-cluster>
   put file*.txt

Po vykonaní všetkých príkazov (úspešne alebo neúspešne) sa sftp odhlási a vráti sa do príkazového riadku.

Bežné možnosti pre sftp zahŕňajú:

  • -B buffer_size - Špecifikuje veľkosť buffera, ktorý sftp používa pri prenášaní súborov. Väčšie buffery vyžadujú menej prebiehajúcich prenosov, ale potrebujú viac pamäte. Predvolená hodnota je 32768 bajtov.

  • -b batchfile - Zapne batch režim.

  • -C - Zapne kompresiu.

  • -i identity_file - Vyberie súbor, z ktorého sa číta identita (súkromný kľúč) na autentifikáciu pomocou verejného kľúča. Táto možnosť sa priamo odovzdáva príkazu ssh.

  • -P port - Špecifikuje port na spojenie so vzdialeným hostiteľom.

  • -q - Tichý režim: vypne indikátor priebehu a varovacie a diagnostické správy od ssh.

  • -r - Rekurzívne kopíruje celé adresáre pri nahrávaní a sťahovaní. Pozor, sftp nenasleduje symbolické odkazy nájdené pri prechádzaní stromu.

  • -v - Podrobný výstup. Táto možnosť sa tiež odovzdáva príkazu ssh.

Cesta k SSH kľúču

Ak sa váš SSH kľúč nachádza mimo predvoleného adresára (~/.ssh), musíte použiť príznak -i na špecifikovanie cesty ku kľúču: sftp -i <path-to-identity-key> ....

Lokálne pripojenie vzdialeného adresára pomocou SSHFS

Adresár z HPC infraštruktúry SAV je možné pripojiť ako súborový systém na lokálnom počítači pomocou SSHFS.

Na Linux klientoch nainštalujte fuse-sshfs (distribúcie Red Hat) alebo sshfs (distribúcie Debian).

Lokálne pripojenie domovského adresára z clustra

sshfs -p 5522 -oIdentityFile=<path-to-identity-key> <username>@login.<cluster>.sav.sk:/<path-to-destination-folder-on-cluster> /<path-to-destination-folder-on-local-computer>

Po spustení tohto príkazu by adresár /<path-to-destination-folder-on-local-computer> mal zobrazovať obsah adresára <path-to-destination-folder-on-cluster> na HPC. Nie je potrebné pripájať celý domovský adresár; najlepšie je pripojiť iba adresár, ku ktorému potrebujete prístup.

Odmountovanie súborového systému

Keď skončíte prácu so svojimi súbormi, odmontujte adresár; inak môžu pri vypínaní počítača vzniknúť problémy s pripojeným súborovým systémom. Na odmountovanie súborového systému vykonajte nasledujúci príkaz:

fusermount -u /<path-to-destination-folder-on-local-computer>

Pre používateľov Ubuntu Linux môže byť potrebné použiť sudo na spustenie príkazu sshfs a prípadne pridať používateľa do skupiny fuse.

Stiahnite a nainštalujte najnovšiu stabilnú inštalačnú verziu WinFSP z tohto miesta. Stiahnite a nainštalujte najnovšiu stabilnú 64-bitovú inštalačnú verziu SSHFS-Win z tohto miesta.

Po nainštalovaní môžete nastaviť SSHFS spojenie tak, ako je opísané nižšie.

Otvorte Prieskumník súborov, kliknite pravým tlačidlom na Tento počítač a vyberte Mapovať sieťovú jednotku. V poli Jednotka vyberte písmeno jednotky, ktoré ešte nie je namapované. Už namapované jednotky budú mať za písmenom jednotky zobrazenú lokalitu. Do poľa Priečinok zadajte:

Pripojenie domovského adresára z clustra cez Prieskumníka súborov

\\sshfs.k\<username>@login.<cluster>.sav.sk!5522\<path-to-destination-folder-on-cluster>

kde <path-to-destination-folder-on-cluster> je adresár, ktorý chcete pripojiť.

SSHFS Windows pripojenie

Cesta ku kľúču sshfs.k

sshfs.k používa SSH kľúč uložený v %USERPROFILE%\.ssh\id_rsa (t. j. C:\Users\<local_user>\.ssh\id_rsa).

Nezvoľte možnosť „Reconnect at sign-in“. Domovský adresár HPC by ste mali pripájať iba vtedy, keď ho potrebujete. Keď k nemu už nepotrebujete prístup, mal by byť „odpojený“. Kliknite na Dokončiť.

Nakoniec, keď skončíte prácu, mali by ste „odpojiť“ namapovanú jednotku od HPC. V Prieskumníkovi súborov kliknite pravým tlačidlom na namapovanú jednotku a vyberte Odpojiť.

SSHFS Windows odpojenie

Stiahnite najnovšie stabilné vydania FUSE for macOS a modulu SSHFS z tohto miesta. Vytvorte na svojom Macu adresár, ktorý sa použije ako mountpoint.

V Termináli spustite nasledujúci príkaz na pripojenie adresára na vzdialenom systéme do lokálneho adresára, ktorý ste vytvorili:

Pripojenie domovského adresára z clustra pomocou sshfs

sshfs <username>@login.<cluster>.sav.sk:/<path-to-destination-folder-on-cluster> /<path-to-destination-folder-on-local-computer> -i <path-to-identity-key> -p 5522

Odmountovanie súborového systému

Keď skončíte prácu so svojimi súbormi, odmontujte adresár; inak môžu pri vypínaní počítača vzniknúť problémy s pripojeným súborovým systémom.


Windows klienti

Tieto možnosti fungujú v systéme Windows po nainštalovaní príslušného klienta (MobaXterm alebo WinSCP); poskytujú grafickú alternatívu k príkazom scp a sftp opísaným vyššie.

  • Pomocou MobaXterm si môžete jednoducho prezerať vzdialený počítač pomocou okna naľavo od terminálu. Jeho aktuálnu lokalitu vidíte na hornom paneli a po počítači sa môžete pohybovať klikaním na adresáre, ako je zobrazené na snímke nižšie.

Základný pohľad MobaXterm

Môžete sa tiež po počítači pohybovať pomocou príkazového riadka v okne vpravo a sledovať zmeny v adresári naľavo, ak zaškrtnete políčko Follow terminal folder.

Sledovať priečinok terminálu

  • Na stiahnutie súboru do vášho lokálneho počítača najprv nájdite a vyberte na vzdialenom počítači súbor, ktorý chcete stiahnuť, pomocou jednej z metód opísaných vyššie. Sťahovanie súboru alebo adresára prebieha rovnakým spôsobom.

Výber adresára

  • Potom kliknite na modrú šípku na stiahnutie. Otvorí sa okno zobrazujúce váš lokálny počítač, v ktorom budete vyzvaní na výber umiestnenia, kam chcete súbory stiahnuť. Po výbere umiestnenia kliknite na tlačidlo OK na potvrdenie sťahovania.

Sťahovanie

Najnovšiu verziu klienta WinSCP si môžete stiahnuť a nainštalovať z tohto miesta.

  • Pripojte sa na HPC cluster pomocou autentifikačného kľúča.

Prihlasovacie okno WinSCP

Výber kľúča v WinSCP

  • Po pripojení sa zobrazí okno na prenos súborov WinSCP. Ľavý panel zobrazuje lokálny počítač, pravý panel súbory vzdialeného počítača. Presuňte súbor, ktorý chcete preniesť, a upustite ho na opačnej strane.

Okno prenosu dát v WinSCP

  • Vyberte umiestnenie súboru vo vyskakovacom okne a potom kliknite na OK na spustenie prenosu súboru.

Open OnDemand

Pre prenos súborov pomocou Open OnDemand pozrite sekciu Prenos súborov.


Prenos dát z internetu na cluster

Jedným z najpriamejších spôsobov, ako stiahnuť súbory, je použitie wget. Každý súbor, ktorý váš webový prehliadač dokáže otvoriť pomocou priameho odkazu, je možné stiahnuť aj pomocou wget. Ide o rýchly spôsob, ako stiahnuť datasety alebo zdrojový kód.

Príkladom je stiahnutie súboru z internetu pomocou nasledujúceho príkazu:

wget <URL>

Niekedy sú dáta, pipeline alebo softvér, ktoré potrebujete, uložené v repozitári na GitHub alebo GitLab. V tomto prípade môžete buď stiahnuť jednotlivé („raw“) súbory pomocou wget, alebo celý repozitár pomocou git clone.

Príkladom je stiahnutie tohto testovacieho repozitára pomocou:

git clone https://github.com/octocat/Hello-World.git

Repozitár bude uložený do aktuálneho adresára v novom adresári s názvom repozitára, v tomto prípade teda Hello-World.

Created by: Marek Štekláč, Marek Štekláč