Úvod
Remote sync neboli příkaz rsync se používá pro přenos a synchronizaci souborů a adresářů mezi počítači, hostiteli, vzdálenými shelly nebo kombinací výše uvedených. Je to mocný nástroj, o kterém byste měli vědět, pokud pracujete s Linuxem. Zde probereme základy příkazu rsync. Ačkoli tento článek používá Ubuntu 20.04, stejné příkazy můžete použít i v jiných distribucích Linuxu.
Proč je rsync tak výjimečný?
Příkazy rsync používají kompresi a dekompresi při přijímání a odesílání souborů, což znamená, že spotřebují mnohem méně šířky pásma. Rsync pouze aktualizuje rozdíly mezi zdrojem a cílem, protože používá protokol vzdálené aktualizace. Podporuje také vlastníky, skupiny, odkazy, oprávnění a zařízení.
Jak nainstalovat rsync?
Většina distribucí Linuxu je dodávána s nainstalovaným rsync. V případě, že ten váš ne, použijte na svém systému Ubuntu následující příkaz:
sudo apt-get install rsync
Syntaxe Rsync
Tato část stručně zopakuje syntaxi rsync.
Přenos z místa na místní nebo synchronizace
rsync {option} {zdroj} {cíl}
Přenos nebo synchronizace z místního na vzdálený
rsync {option} {zdroj} {[e-mail chráněn]:destination}
Vzdálený na místní přenos nebo synchronizaci
rsync {option} {[e-mail chráněn]:destination} {destination}
Zdroj je zdrojový adresář
Cíl je cílový adresář
Možností jsou možnosti příkazu rsync
Uživatel je vzdálené uživatelské jméno
Host je IP nebo název vzdáleného hostitele
Jak používat rsync
Kopírovat soubory lokálně
Chcete-li kopírovat soubory lokálně, použijte:
rsync –a {filename} {destination}
Ve výše uvedeném příkladu kopírujeme „source.zip ” z našeho aktuálního adresáře do složky Dokumenty.
Můžete zkontrolovat, zda byl soubor zkopírován, uvedením všech souborů a adresářů v Dokumentech pomocí:
ls
Jak můžete vidět, „source.zip ” se nachází v adresáři Dokumenty.
Pokud do cíle nepřidáte název souboru, zkopíruje se stejný název jako zdrojový soubor. Chcete-li změnit název cílového souboru, použijte:
rsync –a {filename} {destination/filename}
V níže uvedeném příkladu zkopírujeme „source.zip “ znovu, ale tentokrát jej přejmenujte na „destination.zip “.
„destination.zip ” byl zkopírován do adresáře Documents, jak je znázorněno na obrázku níže.
Zkopírujte obsah adresáře do cíle
Pomocí níže uvedeného příkazu můžete zkopírovat obsah vašeho zdrojového adresáře do cíle.
rsync –av {source}/ {destination}
Výše uvedený obrázek ukazuje obsah „Zdroj “, který se kopíruje do „Cíl ” adresář.
Zkopírujte celý adresář do cíle
Pokud chcete pouze zkopírovat obsah vašeho adresáře do cíle, použijte:
rsync –av {source} {destination}
Výše uvedený příklad kopíruje „Zdroj “ a jeho obsah do „Cíl ” adresář.
Zobrazit průběh
Pro zobrazení průběhu použijte:
rsync –rv –progress {source} {destination}
Ignorovat soubory
Pokud chcete ignorovat určité soubory, použijte:
rsync -vr --exclude '{condition}' {source} {destination}
„Zdroj ” adresář obsahuje následující soubory:
V níže uvedeném příkladu budeme ignorovat soubory, které začínají „s “.
Jak ukazuje obrázek, pouze „soubor “ je zkopírován.
Seznam souborů a adresářů
rsync lze použít k výpisu obsahu zdroje.
rsync {filename}
Výše uvedený příkaz vypíše obsah adresáře Documents.
Kopírování souborů z místního na vzdálený počítač
Pro přesun souborů na vzdálený počítač budete muset nainstalovat openssh-server. Příkaz k tomu je:
sudo apt update
sudo apt install openssh-server
Jakmile je toto nainstalováno, můžete pomocí níže uvedeného příkazu přesunout svůj soubor nebo adresář.
rsync –a {source} {remote [email protected] IP:/destination}
Budete požádáni o heslo vzdáleného počítače.
V níže uvedeném příkladu přesuneme „doc ” do vzdáleného domovského adresáře.
Pomocí ls můžeme vidět, že „doc ” byl přesunut sem.
Kopírování souborů ze vzdáleného počítače na místní počítač
Použijete stejný příkaz jako ve výše uvedeném příkladu.
rsync –a {remote source} {local [email protected] IP:/destination}
V tomto příkladu budeme přesouvat „remotesrcdoc ” ze vzdáleného počítače na místní počítač.
Pomocí ls můžeme vidět, že „remotesrcdoc ” byl přesunut sem.
Přidat aktuální datum do cílového souboru
Datum můžete přidat k názvu cílového souboru nebo adresáře pomocí:
rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync$(date +\\%Y-\\%m)
V níže uvedeném příkladu přesuneme „source.zip ” na plochu, pojmenujte jej jako cíl a přidejte na něj datum.
Zobrazení rozdílů mezi zdrojovými a cílovými soubory
Níže uvedený příkaz lze použít k zobrazení rozdílů mezi zdrojovými a cílovými soubory.
rsync –avzi {source}/ {destination}/
Obrázek níže ukazuje, že soubory „Donuts “ a „Ahoj.txt ” nejsou přítomny v cílovém adresáři.
Parametr „f “ znamená soubor. Mezi další parametry patří:
t:změna časového razítka
d:změna cíle
s:změna velikosti souboru
Omezit šířku pásma při přenosu souborů
Chcete-li omezit šířku pásma při přenosu souborů, použijte:
rsync -vr --bwlimit=1000 {source}/* {destination}
V níže uvedeném příkladu omezujeme šířku pásma na 1000 kB.
Další informace o rsync
Chcete-li zobrazit další dostupné možnosti na rsync, použijte:
rsync –help
Probrali jsme některé základy příkazu rsync, viděli jsme, jak přenášet a synchronizovat soubory lokálně i vzdáleně.
Pokud chcete synchronizovat soubory pomocí příkazu scp, navštivte zde.