Rsync pro Linux: synchronizace, kopírování a zálohování souborů

9 min čtení - 24. května 2025

hero section cover
Obsah
  • Rsync pro Linux: jak synchronizovat, kopírovat a zálohovat soubory jako profesionál
  • Co je rsync?
  • Proč používat rsync místo cp nebo scp
  • Běžné příznaky rsync
  • Příklady Rsync
  • Automatizace rsync pomocí cron
  • Závěrečné myšlenky
Sdílet

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říkazCo dělá
-aRežim archivace. Zachovává oprávnění, vlastnictví, symbolické odkazy a časová razítka. Ekvivalentní k -rlptgoD.
-vVerbose. Vypisuje soubory, které se přenášejí.
-zKomprimovat 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.
-PKombinuje --partial a --progress. Obnoví přerušené přenosy, zobrazí průběh v reálném čase.
--deleteOdstraní soubory v cíli, které neexistují ve zdroji. Nutné pro skutečné zrcadlení.
--excludePřeskočí soubory odpovídající vzoru.
--exclude-from=FILENačíst vzorce pro vyloučení ze souboru. Čistší než řetězení mnoha --exclude příkazů.
--dry-runZobrazit, co by se stalo, kdyby se nic nepřesouvalo.
--bwlimit=KBPSOmezit využití šířky pásma v kilobajtech za sekundu. Užitečné pro zálohy, které běží během pracovní doby.
--checksumPorovnávejte soubory podle kontrolního součtu namísto velikosti a času úpravy. Je to pomalejší, ale zachytí i okrajové případy.
-e sshPouž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 /destination

Zá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:

  1. 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-host
  2. Skript, 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>&1

    Učiňte jej spustitelným pomocí chmod +x.

  3. Zápis v cronu pro jeho spuštění. Upravte pomocí crontab -e:

    0 2 * * * /usr/local/bin/rsync-backup.sh

    To 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
  • -a pro režim archivace, -z pro kompresi, -P pro obnovení a sledování průběhu, --delete pro 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.

Blog

Tento týden byly představeny

Další články
Proč je důležité mít výkonný VPS s neomezeným datovým přenosem

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

Další články
background image

Máte dotazy nebo potřebujete vlastní řešení?

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení