GNU/Linux >> Znalost Linux >  >> Linux

5 pokročilých tipů pro rsync pro správce systému Linux

V předchozím článku s názvem Nástroje Sysadmin:Použití rsync ke správě zálohování, obnovy a synchronizace souborů jsem pojednával o cp a sftp a podívali se na základy rsync pro přesouvání souborů. Je zde také několik dalších skvělých článků o aktivaci Sysadmin na tar a SSH, na které byste se měli podívat. Kopírování souborů do a ze vzdálených systémů a snadný způsob, jak spustit zálohu něčeho, na čem pracujete (nebo, když na to přijdete, důležitých firemních dat), jsou základní, užitečné nástroje v sadě sysadmin toolbox, které používám znovu a znovu. Někdy však možná budete chtít udělat něco trochu sofistikovanějšího, například přesunout data přes méně důvěryhodný nebo pomalejší odkaz. Rsync může poskytnout šifrování pro ochranu při přenosu, kompresi pro lepší tok a kontrolní součty, které zajistí, že dostanete to, co jste očekávali.

[ Čtenářům se také líbilo: Jak bezpečně kopírovat soubory mezi hostiteli Linuxu pomocí SCP a SFTP ]

Údržba webových stránek

Nejprve jsem začal používat rsync synchronizovat místní verzi webové stránky, kterou jsem spravoval v době temna, kdy CI/CD bylo jen záblesk v očích jejího otce. Mohl bych si ponechat místní kopii pro práci a také mít zálohu nejnovější verze webu. Použiji tento scénář jako svůj příklad. Můžete použít rsync pro synchronizaci libovolného vzdáleného souborového systému pro zálohování nebo jako rychlý způsob vytvoření kanálu od testování k produkci. Také jsem jej použil k synchronizaci adresáře a poté použil tar vytvořit místní zálohy:

skipworthy  ~  enable  websync  ls -al
total 8
drwxrwxr-x 2 skipworthy skipworthy 4096 Dec 16 13:57 .
drwxrwxr-x 5 skipworthy skipworthy 4096 Dec 16 14:01 ..
 skipworthy  ~  enable  websync  rsync -aruv 192.168.11.111:/usr/share/httpd/enable ./
receiving incremental file list
enable/
enable/bar
enable/foo
enable/index

sent 85 bytes  received 229 bytes  209.33 bytes/sec
total size is 0  speedup is 0.00
skipworthy  ~  enable  websync  ls -l
total 4
dr-xr-xr-x 2 skipworthy skipworthy 4096 Dec 16 13:49 enable

Stejně jako předtím s místním rsync , běžíme v archivním režimu a zachováváme mtime a atributy souborů, přesouvat se do podadresářů a aktualizovat pouze data, která jsou nová nebo změněná.

Poznámka :-v téměř vždy znamená podrobné , odesílání výstupu do konzole.

Řekněme, že jsem chtěl přidat stránku na web a nahrát ji:

skipworthy  ~  enable  websync  rsync -aruv ./* 192.168.11.111:/usr/share/httpd/enable
sending incremental file list
pagetwo
rsync: recv_generator: mkdir "/usr/share/httpd/enable/enable" failed: Permission denied (13)

Nyní je vhodný čas poznamenat, že při používání rsync musíte myslet na několik věcí push soubory. Rsync potřebuje oprávnění k celému stromu adresářů, nejen k cílovému adresáři. Toho můžete dosáhnout několika způsoby. Za prvé je možné zadat uid a gid z rsync démon v /etc/rsyncd.conf . Dalším způsobem je spustit rsync jako uživatel s požadovanými oprávněními. Obojí může být v zabezpečeném prostředí problematické, proto zde postupujte opatrně.

Pamatujte také, že ve výchozím nastavení, když používáte rsync vzdáleně se připojujete přímo k rsync služba na portu 873 . Na to je potřeba myslet při nastavování pravidel a oprávnění brány firewall. Kromě toho existují oprávnění SELinux, která jsou zcela jinou diskuzí a nespadají do rozsahu tohoto článku. Jedním z řešení problému s oprávněními k adresářům a bezpečnostních problémů obecně je použití SSH (toto by vám nyní mělo znít povědomě). SSH nastaví šifrovaný tunel a lze jej nastavit tak, aby naslouchal na libovolném portu, nemluvě o tom, že můžete zadat klíč SSH pro další zabezpečení připojení a učinit vzdálená připojení o něco jednodušší pro automatizaci.

Pokročilé funkce

Pro tento další příklad vložím tyto změny jako root. Prosím, nebuďte jako já:

rsync -aruv -e ssh  ./* [email protected]:/usr/share/httpd/enable
[email protected]'s password:
sending incremental file list
pagetwo

sent 246 bytes  received 36 bytes  43.38 bytes/sec
total size is 31  speedup is 0.11

Znovu si všimněte, že pro připojení jsou k dispozici obvyklé možnosti SSH, včetně zadání portu a umístění klíče. Rsync také vám umožňuje vybrat možnost vzdáleného prostředí, pokud je nainstalována na obou koncích a nakonfigurována v .ssh/config .

Kontrolní součty

Kontrolní součty jsem zmínil dříve a jsou zde dvě potenciálně užitečné věci. Nejprve rsync ve výchozím nastavení spustí kontrolní součet a poté jej ověří na cíli, což vás upozorní na možnost ztráty nebo poškození dat během letu.

Za druhé, můžete také použít kontrolní součty k určení, které soubory se mají přenést (tj. které soubory jsou ve skutečnosti různé mezi zdrojem a cílem), což je užitečné, pokud si nejste jisti, zda mtime /čas představuje skutečnou verzi požadovaného souboru. Měl jsem souborové systémy, které jsem se pokoušel synchronizovat a které se dotýkaly jinou aplikací, takže časy byly nesprávné.

skipworthy  ~  enable  websync  rsync -aruv -e ssh --checksum 192.168.11.111:/usr/share/httpd/enable ./
receiving incremental file list

sent 26 bytes  received 364 bytes  780.00 bytes/sec

Poznámka :To přináší další režii při zpracování a přenosu, protože pro každý soubor na každé straně je generován kontrolní součet a poté porovnáván.

Komprese

Dalším užitečným trikem je komprese. -z volba zkomprimuje stream, --zc nastaví typ komprese a --zl nastaví úroveň:

skipworthy  ~  enable  websync  rsync -aruv -e ssh --zc=zlib --zl=6 192.168.11.111:/usr/share/httpd/enable ./
receiving incremental file list

sent 26 bytes  received 248 bytes  548.00 bytes/sec
total size is 31  speedup is 0.11

Pokud neurčíte typ nebo úroveň, rsync používá seznam uvedený v RSYNC_COMPRESS_LIST proměnná prostředí pro vyjednávání o společném typu a úrovni komprese.

[ Hledáte více o automatizaci systému? Začněte s The Automated Enterprise, bezplatnou knihou od Red Hat. ] 

Sbalit

Takže tady to máte:rsync je dalším z těch nástrojů, které jsou stále užitečné a relevantní pro administraci linuxových systémů – nástroj, který jsem ve své kariéře mnohokrát rád měl. Můžete s tím dělat mnohem, mnohem více věcí, které jsme zde neměli prostor prozkoumat – jako vždy se podívejte na manuálové stránky!


Linux
  1. 8 tipů pro spolehlivou automatizaci systému Linux

  2. 3 solidní tipy na sebehodnocení pro systémové správce

  3. Psaní Python aplikací, vytváření linuxových laboratoří a další tipy pro systémové správce

  1. 80 Linux Monitorovací nástroje pro SysAdmins

  2. 30 Cvičení procesů Linuxu pro systémové správce

  3. CopyQ - Pokročilý správce schránky pro Linux

  1. Linuxové tipy pro používání cronu k plánování úloh

  2. 3 tipy pro tisk s Linuxem

  3. Linuxový zálohovací nástroj pro přírůstkové zálohování