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
Vyladěné profily pro optimalizaci pracovní zátěže linuxových serverů

Vyladěné profily pro optimalizaci pracovní zátěže linuxových serverů

Jak vybrat, použít a přizpůsobit vyladěné profily pro GPU, databáze a linuxové servery s velkou šířkou pásma, s příklady a tipy pro nasazení Ansible.

16 min čtení - 9. června 2026

Linux OOM Killer Tuning for VPS: Praktický průvodce

12 min čtení - 8. č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í