2024 Autor: Peter John Melton | [email protected]. Naposledy změněno: 2024-01-31 06:09
Upozornění: Pouze pokročilé
Pokud sedíte tam a přemýšlíte "Co je heck rsync?" Nebo "Používám pouze rsync pro opravdu jednoduché úkoly", můžete se podívat na náš předchozí článek o tom, jak používat rsync pro zálohování dat v Linuxu, což dává úvod do rsync, vás provede instalací a předvede své základní funkce. Jakmile budete mít pevné uchopení, jak používat rsync (upřímně, to není tak složité) a jsou pohodlné s terminálem Linux, jste připraveni se přesunout k tomuto pokročilému průvodce.
Spuštění rsync v systému Windows
Za prvé, dostaneme naše čtečky Windows na stejné stránce jako naši Linuxoví guruové. Přestože rsync je vytvořen tak, aby fungoval na systémech podobných systému Unix, není důvod, proč byste jej neměli používat stejně snadno ve Windows. Cygwin vytváří skvělé linuxové rozhraní API, které můžeme použít k spuštění rsync, takže se přesuňte na jejich webové stránky a stáhněte si 32bitovou nebo 64bitovou verzi v závislosti na vašem počítači.
Instalace je přímá; můžete mít všechny výchozí hodnoty, dokud se nedostanete na obrazovku "Vybrat balíčky".
Instalace Vim:
Příkazy rsync: Jednoduché až pokročilé
Nyní, když se uživatelé systému Windows nacházejí na stejné stránce, podívejme se na jednoduchý příkaz rsync a ukážeme, jak může použití některých pokročilých přepínačů rychle zkomplikovat.
Řekněme, že máte spoustu souborů, které je třeba zálohovat - kdo v těchto dnech není? Připojíte přenosný pevný disk, abyste mohli zálohovat soubory počítače a zadejte následující příkaz:
rsync -a /home/geek/files/ /mnt/usb/files/
Nebo to, jak by vypadalo v počítači se systémem Windows se systémem Cygwin:
rsync -a /cygdrive/c/files/ /cygdrive/e/files/
Je to docela jednoduché a v tomto okamžiku není potřeba používat rsync, protože byste mohli soubory přetahovat. Pokud však váš druhý pevný disk již obsahuje některé soubory a potřebuje pouze aktualizované verze a soubory, které byly vytvořeny od poslední synchronizace, je tento příkaz užitečný, protože odesílá pouze nová data na pevný disk. S velkými soubory, a zejména přenosem souborů přes internet, to je velký problém.
Zálohování souborů na externí pevný disk a udržení pevného disku na stejném místě jako v počítači je velmi špatný nápad, takže se podívejme na to, co by bylo zapotřebí, abyste začali posílat soubory přes internet do jiného počítače ( jeden si pronajal, člen rodiny, atd.).
rsync -av --delete -e 'ssh -p 12345’ /home/geek/files/ [email protected]:/home/geek2/files/
Výše uvedený příkaz pošle vaše soubory do jiného počítače s adresou IP 10.1.1.1. Bylo by odstraněno cizí soubory z cílového místa, které již neexistují ve zdrojovém adresáři, výstupní převáděné názvy souborů, takže máte představu o tom, co se děje, a tunel rsync přes SSH na portu 12345.
The
-a -v -e --delete
přepínače jsou některé z nejzákladnějších a běžně používaných; měli byste již o nich vědět hodně, pokud čtete tento tutoriál. Pojďme se podívat na některé další přepínače, které jsou někdy ignorovány, ale neuvěřitelně užitečné:
--progress
- Tento přepínač nám umožňuje zobrazit průběh přenosu každého souboru. Je to obzvláště užitečné při přenosu velkých souborů přes internet, ale může přenášet nesmyslné množství informací při přenosu malých souborů přes rychlou síť.
Příkaz rsync s příkazem
--progress
přepnout jako záloha:
--partial
- Jedná se o další přepínač, který je zvláště užitečný při přenosu velkých souborů přes internet. Pokud se rsync přeruší z jakéhokoli důvodu uprostřed přenosu souborů, částečně přenesený soubor je uložen v cílovém adresáři a přenos pokračuje tam, kde se vypne po opětovném spuštění příkazu rsync. Při přenosu velkých souborů přes internet (řekněme několik gigabajtů) není nic horšího, než jen několik sekund internetového výpadku, modré obrazovky nebo lidské chyby, která způsobí, že se váš soubor přenese a začne znovu.
-P
- tento spínač je kombinován
--progress
a
--partial
takže ji použijte místo toho a váš příkaz rsync bude trochu lepší.
-z
nebo
--compress
- Tento přepínač způsobí, že rsync bude komprimovat data souboru při jeho přenášení, což snižuje množství dat, které je třeba odeslat do cíle. Je to vlastně poměrně běžný přepínač, ale není dalekosáhlý, ale opravdu tě těží z přenosů mezi pomalými připojeními a nedělá nic pro následující typy souborů: 7z, avi, bz2, deb, g, z iso, jpeg, jpg, mov, mp3, mp4, ogg, rpm, tbz, tgz, z, zip.
-h
nebo
--human-readable
- Pokud používáte
--progress
přepínač, určitě budete chtít použít i tento. To znamená, že pokud nechcete konvertovat bajty na megabajty za letu. The
-h
přepínač převede všechna vyvedená čísla na formát čitelný pro člověka, takže můžete skutečně rozumět množství přenášených dat.
-n
nebo
--dry-run
- Tento přepínač je nezbytný pro to, abyste věděli, kdy nejprve píšete váš rsync skript a vyzkoušíte ho. Vykonává zkušební provoz, ale ve skutečnosti nezmění - budoucí změny se stále vysílají jako normální, takže si můžete přečíst vše a ujistěte se, že to vypadá dobře, než začne skript do výroby.
-R
nebo
--relative
- Tento přepínač musí být použit, pokud cílový adresář ještě neexistuje. Tuto volbu použijeme později v této příručce, abychom mohli v adresáři vytvořit adresáře na cílovém počítači s časovými razítky.
--exclude-from
- Tento přepínač slouží k propojení na seznam vyloučení, který obsahuje adresářové cesty, které nechcete zálohovat. Potřebuje prostý textový soubor s adresářem nebo cestou souboru na každém řádku.
--include-from
- Podobný
--exclude-from
ale odkazuje na soubor, který obsahuje adresáře a cesty k souborům dat, které chcete zálohovat.
--stats
- Není to opravdu důležitý přepínač, ale pokud jste sysadmin, může být užitečné znát detailní statistiky jednotlivých záloh, takže můžete sledovat množství přenosů odesílaných přes vaši síť a podobně.
--log-file
- Umožňuje odeslat výstup rsync do souboru protokolu. Rozhodně to doporučujeme pro automatické zálohování, ve kterém nejste tam, abyste si sami přečetli výstup. Vždy ukládejte soubory protokolu jednou do volného času, abyste se ujistili, že vše funguje správně. Také je rozhodujícím přepínačem pro použití sysadminu, takže se nezamlouváte, jak se vaše zálohy nezdařily, když jste opustili stážistu.
Podívejme se na náš příkaz rsync, když přidáme několik dalších přepínačů:
rsync -avzhP --delete --stats --log-file=/home/geek/rsynclogs/backup.log --exclude-from '/home/geek/exclude.txt' -e 'ssh -p 12345' /home/geek/files/ [email protected]:/home/geek2/files/
Příkaz je stále velmi jednoduchý, ale stále jsme nevytvořili slušné řešení zálohování. I když jsou naše soubory nyní ve dvou různých fyzických místech, tato záloha nemá nic, co by nás ochránilo před jednou z hlavních příčin ztráty dat: lidská chyba.
Zálohování snímků
Pokud náhodou odstraníte soubor, virus poškodí některý z vašich souborů, nebo se něco jiného stane, kdyby se vaše soubory nežádoucím způsobem změnily, a poté spustíte skript rsync zálohování, vaše záložní data jsou přepsána nežádoucími změnami. Když k takovému problému dojde (ne pokud, ale kdy), vaše řešení zálohování nic neudělalo ochranu před ztrátou dat.
Stvořitel rsync to uvědomil a přidal
--backup
a
--backup-dir
argumenty, takže uživatelé mohou spustit rozdílné zálohy. První příklad na webu rsync zobrazuje skript, ve kterém je spuštěna plná záloha každých sedm dní, a změny v těchto souborech jsou denně zálohovány v samostatných adresářích. Problém s touto metodou spočívá v tom, že k obnovení souborů je nutné efektivně obnovit sedm různých časů. Navíc většina geeků provádí zálohování několikrát denně, takže můžete mít v každém okamžiku snad 20+ různých adresářů záloh. Nejen, že se vaše soubory nyní zotavují, ale dokonce i prohlížení vašich zálohovaných dat může být velmi časově náročné - měli byste vědět, kdy byl soubor naposledy změněn, aby se našel jeho poslední záložní kopie. Navíc je neúčinné provozovat pouze přírůstkové zálohy týdně (nebo dokonce méně často v některých případech).
Snapshot záloh na záchranu! Zálohování snímků nejsou nic víc než přírůstkové zálohy, ale využívají hardlinky k zachování struktury souborů původního zdroje. To může být těžké zabalit hlavu zpočátku, tak se podívejme na příklad.
Představte si, že máme spouštěcí skript, který automaticky spouští naše data každé dvě hodiny. Kdykoli to rsync udělá, označí každou zálohu ve formátu: Backup-month-day-year-time.
Takže na konci typického dne bychom měli mít seznam adresářů v našem cílovém adresáři takto:
--link-dest=DIR
argument.
Samozřejmě, abychom měli tyto pěkně a úhledně jmenované adresářové jména, budeme muset trochu posílit náš skript rsync. Podívejme se na to, co by bylo zapotřebí k provedení takového zálohovacího řešení, a pak podrobněji vysvětlíme tento scénář:
#!/bin/bash
#copy old time.txt to time2.txt
yes | cp ~/backup/time.txt ~/backup/time2.txt
#overwrite old time.txt file with new time
echo `date +”%F-%I%p”` > ~/backup/time.txt
#make the log file
echo “” > ~/backup/rsync-`date +”%F-%I%p”`.log
#rsync command
rsync -avzhPR --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r --delete --stats --log-file=~/backup/rsync-`date +”%F-%I%p”`.log --exclude-from '~/exclude.txt' --link-dest=/home/geek2/files/`cat ~/backup/time2.txt` -e 'ssh -p 12345' /home/geek/files/ [email protected]:/home/geek2/files/`date +”%F-%I%p”`/
#don’t forget to scp the log file and put it with the backup
scp -P 12345 ~/backup/rsync-`cat ~/backup/time.txt`.log [email protected]:/home/geek2/files/`cat ~/backup/time.txt`/rsync-`cat ~/backup/time.txt`.log
To by byl typický skript rsync skriptu. V případě, že jsme někde přišli o nás, pojedeme to kusem po kusu:
První řádek našeho skriptu zkopíruje obsah souboru time.txt na čas2.txt. Zaškrtávací políčko yes potvrzuje, že chceme soubor přepsat. Dále převezmeme aktuální čas a vložíme jej do souboru time.txt. Tyto soubory budou užitečné později.
Následující řádek vytvoří soubor protokolu rsync a pojmenuje jej rsync-date.log (kde datum je skutečný datum a čas).
Nyní komplexní příkaz rsync, o kterém jsme vás varovali:
-avzhPR, -e, --delete, --stats, --log-file, --exclude-from, --link-dest
- Jen přepínače, o kterých jsme hovořili dříve; posuňte nahoru, pokud potřebujete aktualizaci.
--chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r
- Toto jsou oprávnění pro cílový adresář. Protože děláme tento adresář uprostřed našeho rsync skriptu, musíme zadat oprávnění tak, aby k němu uživatel mohl psát soubory.
Použití příkazů datum a mačka
Budeme přecházet každé použití datových a mačkových příkazů uvnitř příkazu rsync v pořadí, v jakém se vyskytují. Poznámka: Jsme si vědomi, že existují i další způsoby, jak tuto funkci dosáhnout, zejména s použitím prohlášení proměnných, ale pro účely této příručky jsme se rozhodli použít tuto metodu.
Soubor protokolu je určen jako:
~/backup/rsync-`date +”%F-%I%p”`.log
Jinak bychom ji mohli specifikovat jako:
~/backup/rsync-`cat ~/backup/time.txt`.log
Ať tak či onak,
--log-file
příkaz by měl být schopen najít dříve vytvořený datový soubor s datem a zapsat jej.
Soubor cílového odkazu je určen jako:
--link-dest=/home/geek2/files/`cat ~/backup/time2.txt`
To znamená, že
--link-dest
příkaz je uveden v adresáři předchozí zálohy. Pokud běžíme zálohování každé dvě hodiny, a to je v 16:00 v době, kdy jsme spustili tento skript, pak
--link-dest
příkaz vyhledá adresář vytvořený v 14:00 a přenáší pouze data, která se od té doby změnily (pokud existují).
Chcete-li znovu zopakovat, proto je čas.txt zkopírován na čas2.txt na začátku skriptu, takže
--link-dest
příkaz může odkazovat na tento čas později.
Cílový adresář je určen jako:
[email protected]:/home/geek2/files/`date +”%F-%I%p”`
Tento příkaz prostě položí zdrojové soubory do adresáře, který má název aktuálního data a času.
Konečně se ujistíme, že kopie souboru protokolu je umístěna uvnitř zálohy.
scp -P 12345 ~/backup/rsync-`cat ~/backup/time.txt`.log [email protected]:/home/geek2/files/`cat ~/backup/time.txt`/rsync-`cat ~/backup/time.txt`.log
Používáme bezpečnou kopii na portu 12345, abychom vzali protokol rsync a umístili jej do správného adresáře. Chcete-li vybrat správný soubor protokolu a ujistit se, že skončí na správném místě, soubor time.txt musí být odkazován pomocí příkazu cat. Pokud se divíte, proč jsme se rozhodli zkracovat čas.txt namísto pouhého použití příkazu datum, je to proto, že při spuštění příkazu rsync se mohlo stát spousta času, abychom se ujistili, že máme správný čas. textový dokument, který jsme vytvořili dříve.
Automatizace
Použijte Cron v Linuxu nebo Plánovač úloh v systému Windows pro automatizaci skriptu rsync. Jedna věc, na kterou musíte být opatrná, je zajistit, abyste ukončili všechny běžné procesy rsync, než budete pokračovat v nové. Plánovač úloh se zdá, že zavírá všechny již spuštěné instance automaticky, ale pro Linux budete muset být trochu kreativnější.
Většina distribucí Linuxu může používat příkaz pkill, proto se nezapomeňte přidat na začátek skriptu rsync následující:
pkill -9 rsync
Šifrování
Ne, ještě nejsme hotovi. Nakonec máme fantastické (a zdarma!) Řešení zálohování, ale všechny naše soubory jsou stále náchylné k krádeži. Doufejme, že zálohujete soubory na nějaké místo vzdálené stovky kilometrů. Bez ohledu na to, jak bezpečné je to vzdálené místo, může být krádež a hackování vždycky problémem.
V našich příkladech jsme tunelovali celou naši službu rsync přes SSH, což znamená, že všechny naše soubory jsou šifrovány při jejich přechodu na cílové místo. Musíme se však ujistit, že cíl je stejně bezpečný. Mějte na paměti, že rsync šifruje vaše data pouze při jejich přenášení, ale soubory jsou po otevření cílového místa otevřené.
Jedna z nejlepších funkcí rsync je, že přenáší změny pouze v každém souboru. Pokud máte všechny soubory šifrované a provedete jednu malou změnu, celý soubor bude muset být znovu vyslán v důsledku šifrování zcela randomizovat všechna data po jakékoli změně.
Z tohoto důvodu je nejlepší / nejjednodušší použít nějaký typ šifrování disku, například BitLocker pro Windows nebo dm-crypt for Linux. Tímto způsobem jsou vaše data chráněna v případě krádeže, ale soubory mohou být přenášeny pomocí rsync a vaše šifrování nebrání výkonu. Existují další možnosti, které fungují podobně jako rsync nebo dokonce implementují nějakou formu, jako je duplicita, ale postrádají některé funkce, které rsync nabízí.
Poté, co jste nastavili zálohy snímků na místě mimo provoz a zašifrovali zdrojové a cílové pevné disky, dejte si paty na zádech pro zvládnutí rsync a implementujte nejdokonalejší řešení zálohování dat.
Doporučuje:
Nejlepší články pro zálohování a synchronizaci vašich dat
Světový den zálohování je 31. března a rozhodli jsme se, že vám poskytneme některé užitečné informace, abyste usnadnili zálohování vašich dat. Publikovali jsme články o zálohování různých typů dat a nastavení jak offline, tak online.
Příručka How-To Geek na učení Photoshopu, část 5: Úpravy fotografií pro začátečníky
Photoshop je z důvodu "Photoshopu". je to pro úpravu fotografií. Podívejte se na některé základní techniky úpravy fotografií a zjistěte, jak můžete zlepšit vlastní rodinné fotografie.
Průvodce pro začátečníky pro optimalizaci systému Windows pro lepší výkon
Tipy a triky pro začátečníky k optimalizaci systému Windows 10/8/7 & urychleně a rychlejší. V průběhu času se Windows zpomalí; udržet to běží rychle!
3 zdarma software pro synchronizaci času pro Windows 10/8/7
Pokud váš systém Windows nesprávně synchronizuje systémový čas, použijte tyto freeware, abyste přinutili Windows synchronizovat čas při každém spuštění - NetTime, Atomic Clock Sync, Dimension 4.
Tipy pro použití baterie pro notebook a příručka pro optimalizaci pro uživatele Windows
Tyto tipy pro používání baterií na notebooku a příručka pro optimalizaci pomohou baterii notebooku mít dlouhou životnost. Některý software pro optimalizaci baterie optimalizuje využití a výkon baterie moderního notebooku.