Probíhá hledání...

Kopírování souborů pomocí rsync přes SSH

V tomto návodu si ukážeme jednotlivé kroky pro zkopírování souborů pomocí rsync přes SSH na platformách Debian, CentOS nebo Ubuntu Linux.

Co je rsync?

rsync je nástroj pro přesun a synchronizaci souborů mezi serverama. Pro zabezpečené připojení nástroj používá SSH protokol. rsync nabízí také velké množství nastavení, například archivaci, zálohování, komprese dat během přenosu apod.

Instalace rsync

Pokud rsync není zahrnut v základní instalaci serveru, nástroj můžeme přidat pomocí výchozího správce balíčků.

CentOS
sudo yum install rsync
Debian/Ubuntu
sudo apt-get install rsync

Kontrola SSH připojení

Pro přesun souborů je potřeba mít funkční SSH přípojení. Ověření SSH připojení lze udělat pomocí příkazu

ssh vzdalenyuzivatel@x.x.x.x

kde x.x.x.x je IP adresa serveru, kam budeme soubory přenášet, nebo ze kterého soubory budeme stahovat. IP Adresu lze nahradit za hostname vzdáleného serveru.

Pokud je SSH připojení navázáno, neměly by být žádné další problémy týkající se přenosu souborů.
Pozn. podle ověřovací metody, nastavené na serveru, může být potřeba zadat SSH heslo při spuštění rsync.

Práce s rsync

Kopírování souboru z lokálního na vzdálený server
rsync -v -e ssh /home/lokalniuzivatel/testfile.txt vzdalenyuzivatel@x.x.x.x:/home/vzdalenyuzivatel/rsync

V přikladu, kopírujeme soubor testfile.txt z lokálního serveru na vzdálený a soubor ukládáme do složky /home/vzdalenyuzivatel/rsync
Pokud je SSH port vzdáleného serveru nastavený na jiný než výchozí port (výchozí je 22), můžeme port specifikovat pomocí parametru -e.

rsync -v -e "ssh -p2222" /home/lokalniuzivatel/testfile.txt vzdalenyuzivatel@x.x.x.x:~/rsync
Kopírování souboru ze vzdáleného serveru do složky na lokálním serveru
rsync -v -e ssh vzdalenyuzivatel@x.x.x.x:/home/vzdalenyuzivatel/rsync/testfile.txt /home/lokalniuzivatel/

Kopírujeme soubor ze vzdáleného serveru ze složky /home/vzdalenyuzivatel/rsync/ do lokální složky /home/lokalniuzivatel/

Synchronizace lokální složky se složkou na vzdáleném serveru.
rsync -r -a -v -e ssh --delete /home/lokalniuzivatel/slozka vzdalenyuzivatel@x.x.x.x:/home/vzdalenyuzivatel/slozka
Synchronizace složky na vzdáleném serveru s lokální složkou.
rsync -r -a -v -e ssh --delete vzdalenyuzivatel@x.x.x.x:/home/vzdalenyuzivatel/slozka /home/lokalniuzivatel/slozka
Použití "/" na konci cesty:

Zdrojová složka
Pokud je znak "/" umístěn na konci cesty zdrojové složky, rsync zkopíruje pouze obsah složky.
Pokud na konci cesty znak "/" není, rsync zkopíruje složku s jejím obsahem

Cílová složka
Pokud je znak "/" umístěn na konec cílové cesty, rsync vloží data přímo do složky.
Pokud na konci cesty znak "/" není, rsync vytvoří novou složku a vloží data do nově vytvořené složky.

Seznam základních možností rsync:

  • --delete - odstraní data, která neexistují na zdrojové cestě
  • -v - verbose (-vv zobrazí více informací)
  • -e "ssh options" - specifikuje ssh připojení jako vzdálený shell
  • -a - archive mode - zachovává oprávnění (vlastníka, skupiny), čas, symbolické odkazy
  • -r - rekurze do adresářů
  • -z - komprese dat během přesunu
  • --exclude 'foldername' – vyloučí specifikovanou složku v přenosu
  • -P – zobrazí postup během přesunu

Komentáře

Pro odeslání komentáře je nutno být přihlášen