GNU/Linux >> Znalost Linux >  >> Linux

Jak používat Rsync ke kopírování/synchronizaci souborů mezi servery

Úvod

Rsync je skvělý způsob, jak synchronizovat soubory mezi servery nebo jednoduše přesouvat soubory mezi servery bez potřeby FTP. Propojuje dva servery pomocí protokolu SSH, což umožňuje přenos dat mezi nimi. Démon rsync, který je popsán dále v tomto článku, používá svůj vlastní protokol a běží na určeném portu. Níže projdeme základy; kopírování mezi servery, kopírování do/z démonů rsync a udržování synchronizace souborů na různých serverech.

Předpoklady

– 2 linuxové servery, na kterých je na obou nainstalován rsync.
– Server provádějící zahájení přenosu musí mít přístup k portu SSH přijímajícího serveru (nebo portu rsync, pokud se připojujete k démonu rsync).
– Uživatel musí mít oprávnění k použití rsync (příklady níže budou spuštěny jako uživatel root).

Základy Rsync

Rsync může poslat soubory na jiný server nebo stáhnout soubory z jiného serveru. Rozdíl mezi nimi je v syntaxi. Pokud nejprve zadáte svůj místní soubor, zahájí se push. Pokud nejprve zadáte svého vzdáleného hostitele, zahájí se stahování. Podívejme se na přesný typ syntaxe níže.

rsync [-options] SOURCE [email protected]:DESTINATION

Vytáhněte:

rsync [-options] [email protected]:SOURCE DESTINATION

[-options] jsou všechny různé možnosti, které lze použít. Některé zmíním a vysvětlím na příkladech níže. Úplný seznam všech možností naleznete na stránce manuálu.

SOURCE znamená /directory/path/to/the/file/or/directory který bude zkopírován.

DESTINATION znamená /directory/path/to/the/new/location na přijímajícím hostiteli.

[email protected] je uživatel na vzdáleném hostiteli, ke kterému se má rsync připojit.

x.x.x.x znamená IP adresu vzdáleného hostitele. Může to být také název hostitele, pokud máte nakonfigurovaný DNS.

Nyní řekněme, že musíte zadat port mimo výchozí port 22, ke kterému se má rsync připojit. Udělali byste to pomocí volby -e . Viz příklad níže (nahraďte PORT s číslem portu, ke kterému se potřebujete připojit).

Stisk:

rsync [-other options] -e 'ssh -p PORT' SOURCE [email protected]:DESTINATION

Vytáhněte:

rsync [-other options] -e 'ssh -p PORT' [email protected]:SOURCE DESTINATION

Příklady jednoduchého přenosu souborů

Nejprve zahájíme přenos .txt souboru z jednoho serveru na druhý.

rsync /home/simple.txt [email protected]:/home

Tento příkaz zkopíruje soubor simple.txt z našeho místního serveru na /home našeho vzdáleného serveru adresář.

Rsync Přenos mezi dvěma servery.

Vpravo jsme udělali ls před rsync a poté znovu po jeho spuštění, takže vidíme, že soubor byl zkopírován.

Zde je příklad vytažení:

rsync [email protected]:/home/pullme.txt /home

Soubor pullme.txt je na vzdáleném serveru (x.x.x.x) v /home adresář. Tento příkaz zkopíruje soubor do /home místního serveru adresář.

Pomocí této metody můžete push/pull libovolný jednotlivý soubor, který určíte. Nyní pojďme do adresářů.

Přenos souborů adresáře

Přesunutí adresáře je jednoduché. Přidejte -d a přesune pouze adresář. Pokud chcete přesunout adresář a jeho obsah, použijte -r místo toho rekurzivně kopírovat všechny soubory a podsložky. Když už jsme u toho, zaměřme se na -t volba. Tato možnost zkopíruje datum a čas, kdy byl soubor naposledy změněn. Pomocí -t je dobré pro uchování přesných záznamů o tom, kdy byl soubor naposledy upraven. Tyto možnosti budou fungovat s tlačením nebo vytahováním.

V níže uvedeném příkladu jsem přesunul soubor pullme.txt soubor do /transfer_me adresář. Vytvořil jsem také adresář /simple (který obsahuje soubor simple.txt ) uvnitř /transfer_me . Potom jsem stlačil /transfer_me adresář na vzdálený server.

rsync -rt /home/transfer_me [email protected]:/home

Rsync adresář

Jak můžete vidět, složka na vzdáleném (přijímajícím) serveru obsahuje všechny podadresáře a soubory, které místní složka vytvořila na inicializačním serveru.

Připojování k démonu Rsync

Tato část vyžaduje server, na kterém běží démon rsync. Chcete-li si tyto pokyny vyzkoušet, přečtěte si náš článek o nastavení démona rsync.

Nyní, když jsme si prošli základní přenos souborů/adresářů pomocí rsync, můžeme přejít k připojení k démonu rsync. Démon rsync běží na serveru neustále, takže můžete kdykoli odeslat a/nebo stáhnout z přiřazeného adresáře démona rsync tohoto serveru. Existují dva formáty stahování a vkládání do démona rsync.

Vytáhněte:

rsync [-options] rsync://[email protected][:PORT]SOURCE DESTINATION

Vytáhněte (všimněte si dvojitých dvojteček za IP adresou/názvem hostitele):

rsync [-options] [email protected]::SOURCE DESTINATION

Stisk:

rsync [-options] SOURCE rsync://[email protected][:PORT]DESTINATION

Push (všimněte si dvojitých dvojteček za IP adresou/názvem hostitele):

rsync [-options] SOURCE [email protected]::DESTINATION

Podívejte se níže, jak jsem vytáhl z démona rsync (použití portu číslo 873 níže je nadbytečné, protože se jedná o výchozí port připojení démona rsync – uvádím jej, abych ukázal, jak byste naformátovali příkaz, pokud byste nastavili jiný než výchozí port na vašem démonu rsync):

rsync -rt rsync://[email protected]:873/files/ /home/pulledfromdaemon

Vytažení démona Rsync

Zde files je název modulu. Protože stahujeme vše z tohoto adresáře (pullme.txt a simple.txt ) jednoduše ponecháme u názvu modulu pro zdroj.

Synchronizace souborů pomocí Rsync

Nyní budeme diskutovat o tom, jak synchronizovat soubory. Synchronizaci můžete provést jediným příkazem rsync se správnými volbami. Tento příkaz můžete vložit do skriptu nebo úlohy cron, aby se spouštěl na vyžádání nebo automaticky. Příkaz se liší, pokud démona tlačíte, stahujete nebo používáte, ale možnosti zůstávají stejné.

rsync -rtu --delete SOURCE [email protected]:/DESTINATION

V tomto příkladu věnujte pozornost -rtu --delete možnosti. -r jsme již probrali a -t možnosti – rekurzivní kopie a kopie časového razítka. -u volba říká rsync, aby aktualizoval pouze jiné/změněné/přidané soubory ze SOURCE do DESTINATION . Možnost --delete odstraní všechny soubory z DESTINATION že SOURCE již nemusí mít. S touto (a dalšími možnostmi, jako je -l pro symbolické odkazy) můžete udržovat adresáře na více místech aktuální se zdrojem.

Nyní můžete snadno synchronizovat soubory mezi servery, démony rsync a udržovat soubory vzájemně synchronizované. Děkujeme, že dodržujete tento návod! Vraťte se sem, kde najdete další aktualizace, nebo se podívejte na mnoho služeb, které nabízíme, včetně hostování VPS.

Zjistěte více o našich hostingových službách VPS a virtuálních privátních serverech.


Linux
  1. Jak Rsync souborů mezi dvěma dálkovými ovladači?

  2. Jak rekurzivně kopírovat adresáře pomocí rsync při vyloučení konkrétních souborů

  3. Jak rychle zkopírovat velké množství souborů mezi dvěma servery

  1. Jak používat Rsync k synchronizaci nových nebo změněných/upravených souborů v Linuxu

  2. Jak přenášet soubory mezi servery v Linuxu pomocí SCP a FTP

  3. Jak synchronizovat soubory / složky od určitého data dopředu?

  1. Jak použít rsyslog k vytvoření serveru pro agregaci protokolů Linux

  2. Jak selektivně umlčet Rsync?

  3. Jak používat příkaz Rsync v linuxu?