Rsync pro Linux: synchronizace, kopírování a zálohování souborů
9 min čtení - 24. května 2025

Jak používat rsync v Linuxu pro inkrementální přenosy, vzdálenou synchronizaci přes SSH, plánované zálohování pomocí cronu a jak se vyhnout pasti trailing-slash.
Rsync pro Linux: jak synchronizovat, kopírovat a zálohovat soubory jako profesionál
Rsync je standardní nástroj pro kopírování souborů mezi systémy Linux. Je rychlejší než cp nebo scp pro cokoli, co spouštíte více než jednou, zotavuje se z výpadků sítě a přenáší pouze to, co se skutečně změnilo. Tento příspěvek se zabývá tím, co rsync dělá, příznaky, které stojí za to znát, příklady, ke kterým se budete nejčastěji vracet, a jak jej naplánovat pomocí cronu.
Co je rsync?
Rsync je nástroj příkazového řádku pro kopírování a synchronizaci souborů mezi umístěními. Funguje lokálně, přes SSH na vzdálený hostitel nebo proti démonu rsync. Klíčový rozdíl od cp nebo scp: rsync nejprve porovná zdroj a cíl a poté přenese pouze rozdíly. V 100 GB adresáři, kde se změnilo 200 MB, rsync přesune 200 MB. cp a scp přenese vše.
Je součástí každé moderní distribuce Linuxu. Pokud chybí: apt install rsync nebo dnf install rsync.
Proč používat rsync místo cp nebo scp
Tři důvody, proč rsync vítězí u jakéhokoli netriviálního kopírování:
- Je inkrementální. Následující běhy přenášejí pouze změněné bajty, nikoli celé soubory. U záloh a zrcadel to znamená, že úloha, která dříve trvala celou noc, nyní zabere jen pár minut.
- Zvládá přerušení. S
--partialse přenos 50 GB souboru, který byl přenesen z poloviny, obnoví tam, kde byl přerušen, místo aby začínal znovu. - Zachovává metadata. Režim archivu (
-a) zachovává oprávnění, vlastnictví, symbolické odkazy a časová razítka. To je zásadní pro systémové soubory, stromy zdrojových kódů a vše, kde na atributech záleží.
Pro jednorázové kopírování malých souborů scp je v pořádku. Pro cokoli, co se opakuje, cokoli náročného na šířku pásma nebo cokoli, co budete možná potřebovat obnovit, použijte rsync.
Běžné příznaky rsync
Příkazy, které budete skutečně používat:
| Příkaz | Co dělá |
|---|---|
-a | Režim archivace. Zachovává oprávnění, vlastnictví, symbolické odkazy a časová razítka. Ekvivalentní k -rlptgoD. |
-v | Verbose. Vypisuje soubory, které se přenášejí. |
-z | Komprimovat při přenosu. Užitečné u pomalých nebo drahých připojení, méně užitečné v LAN nebo u již komprimovaného obsahu. |
-P | Kombinuje --partial a --progress. Obnoví přerušené přenosy, zobrazí průběh v reálném čase. |
--delete | Odstraní soubory v cíli, které neexistují ve zdroji. Nutné pro skutečné zrcadlení. |
--exclude | Přeskočí soubory odpovídající vzoru. |
--exclude-from=FILE | Načíst vzorce pro vyloučení ze souboru. Čistší než řetězení mnoha --exclude příkazů. |
--dry-run | Zobrazit, co by se stalo, kdyby se nic nepřesouvalo. |
--bwlimit=KBPS | Omezit využití šířky pásma v kilobajtech za sekundu. Užitečné pro zálohy, které běží během pracovní doby. |
--checksum | Porovnávejte soubory podle kontrolního součtu namísto velikosti a času úpravy. Je to pomalejší, ale zachytí i okrajové případy. |
-e ssh | Použijte SSH pro přenos. Implicitní u většiny moderních instalací. |
Výchozí chování porovnává velikost souboru a čas úpravy, což je rychlé a téměř vždy správné. Přepněte na --checksum , pokud proces nasazení přepíše časová razítka bez změny obsahu, nebo pokud máte podezření na poškození na úrovni bitů.
Příklady Rsync
Zkopírujte adresář lokálně:
rsync -av /source/path/ /destination/path/Synchronizace se vzdáleným serverem přes SSH:
rsync -avz /local/dir/ user@remote:/remote/dir/Zkušební běh před provedením jakýchkoli destruktivních změn:
rsync -avz --dry-run /local/dir/ user@remote:/dir/Zrcadlení dvou adresářů, včetně odstranění na cílovém místě:
rsync -av --delete /source/ /destination/Vyloučení protokolů a dočasného adresáře:
rsync -av --exclude='*.log' --exclude='tmp/' /src/ /dest/Obnovte velký přenos, který by mohl být přerušen:
rsync -avP user@remote:/backups/big.img /local/Pokud dojde k přerušení relace SSH, spusťte stejný příkaz znovu. S -Prsync pokračuje tam, kde přestal, místo aby začínal od nuly.
Omezte šířku pásma na 50 MB/s pro zálohování mimo špičku, aby nedošlo k zahlcení uplinku:
rsync -avz --bwlimit=50000 /local/dir/ user@remote:/dir/Záludnost koncové lomítka
Nejčastější chyba při používání rsync:
rsync -av /source /destination/ # copies the 'source' directory INTO /destination
rsync -av /source/ /destination/ # copies the CONTENTS of /source into /destinationZávěrečná lomítka u zdroje znamená „vše v tomto adresáři“. Žádná závěrečná lomítka znamená „samotný tento adresář“. Spusťte nejprve s --dry-run prvním, pokud si nejste jisti, zejména v kombinaci s --delete.
Automatizace rsync pomocí cron
Pro plánované zálohy potřebujete tři věci:
Přístup k cílovému serveru přes SSH bez hesla. Úlohy cron nemohou zadávat hesla. Vygenerujte klíč a zkopírujte jej na záložní hostitel:
ssh-keygen -t ed25519 ssh-copy-id user@backup-hostSkript, ne jednorádkový příkaz v crontabu. Snadnější testování, snadnější protokolování:
#!/bin/bash LOG=/var/log/rsync-backup.log rsync -az --delete /etc/ user@backup:/backups/$(hostname)/etc/ >> "$LOG" 2>&1Učiňte jej spustitelným pomocí
chmod +x.Zápis v cronu pro jeho spuštění. Upravte pomocí
crontab -e:0 2 * * * /usr/local/bin/rsync-backup.shTo spustí skript každou noc ve 02:00.
Dvě vylepšení, která stojí za to provést v produkčním prostředí: obalte skript do flock , aby se dlouhodobě běžící úloha nepřekrývala s příštím nočním spuštěním, a přesměrujte výstup přes logger , aby se chyby dostaly do systémového deníku, kde je může zachytit monitorování.
Závěrečné myšlenky
Rsync je jedním z mála nástrojů pro Linux, u kterého se čas strávený studiem příznaků vyplatí téměř okamžitě. Hlavní body:
- Díky inkrementálním přenosům a podpoře obnovení je rsync správnou volbou pro vše, co spouštíte více než jednou
-apro režim archivace,-zpro kompresi,-Ppro obnovení a sledování průběhu,--deletepro skutečné zrcadlení- Dávejte pozor na koncovou lomítku v cestě ke zdroji, zejména u
--delete - Spárujte jej s cronem a SSH klíči pro automatické plánované zálohy
U velkých zálohovacích úloh, které přesouvají data mezi zařízeními, znamená spuštění rsync na VPS s neomezenou šířkou pásma, že zálohovací okna nejsou omezena limity přenosu.
Proč je důležité mít výkonný VPS s neomezeným datovým přenosem
VPS s neomezeným datovým přenosem poskytuje paušální šířku pásma při pevné rychlosti portu. V čem se liší od tarifů s měřeným datovým přenosem, kdy se vyplatí a co je třeba zkontrolovat před zakoupením.
8 min čtení - 9. května 2025
Vyladěné profily pro optimalizaci pracovní zátěže linuxových serverů
16 min čtení - 9. června 2026

Máte dotazy nebo potřebujete vlastní řešení?
Flexibilní možnosti
Globální dosah
Okamžité nasazení
Flexibilní možnosti
Globální dosah
Okamžité nasazení