Příkaz rsync v Linuxu je Rychlý a spolehlivý nástroj pro synchronizaci a zálohování souborů, který kopíruje pouze změněná data pomocí algoritmu delta přenosu. Zachovává oprávnění, vlastnictví, časová razítka a podporuje kompresi a šifrování přes... SSH, výjimky a zrcadlení. Administrátoři používají rsync pro lokální a vzdálené zálohy, migrace serverů a efektivní nasazení webových stránek.
jestli ty manage Pro linuxové servery nebo webové stránky je zvládnutí příkazu rsync v Linuxu nezbytné. V této uživatelské příručce se dozvíte přesně, jak rsync funguje, jak jej nainstalovat, základní možnosti, reálné příklady, ladění výkonu a osvědčené postupy pro bezpečné, inkrementální zálohy – ať už synchronizujete lokálně nebo se vzdáleným serverem přes... SSH.
Co je rsync a jak funguje?

rsync (vzdálená synchronizace) je nástroj pro diferenční kopírování souborů. Místo přenosu celých souborů pokaždé rsync vypočítává rozdíly a odesílá pouze změněné bloky, čímž dramaticky snižuje šířku pásma a čas.
Podporuje lokální kopie do lokální a lokální přenosy do vzdálené sítě (nebo vzdálené sítě do lokální sítě). přes SSH nebo démon rsync, přičemž zachovává metadata a zpracovává symbolické odkazy, zařízení a pevné odkazy.
Klíčové schopnosti:
- Algoritmus delta přenosu kopíruje pouze změny
- Zachovává oprávnění, vlastnictví a časová razítka
- Funguje lokálně nebo přes SSHdémon /rsync
- Podporuje vzory vyloučení/zahrnutí a seznamy souborů
- Zrcadlení a prořezávání pomocí
--delete - Komprese (
-z) a výstup průběhu (-P/--info=progress2)
Instalace rsyncu v Linuxu
rsync je k dispozici ve všech hlavních distribucích. Použijte svůj balíček manager:
# Debian/Ubuntu
sudo apt update && sudo apt install rsync
# RHEL/CentOS/Rocky/Alma (RHEL 8+)
sudo dnf install rsync
# Fedora
sudo dnf install rsync
# Arch/Manjaro
sudo pacman -S rsyncOvěřte instalaci:
rsync --versionZákladní syntaxe a rychlý start
Syntaxe rsync je jednoduchá:
rsync [OPTIONS] SOURCE DESTINATIONPříklady:
# 1) Local directory to directory
rsync -av /home/user/Documents/ /mnt/backup/Documents/
# 2) Local to remote over SSH (port 22 by default)
rsync -av -e ssh /var/www/ user@server:/backups/www/
# 3) Remote to local download
rsync -av -e ssh user@server:/var/log/ /local/logs/Z bezpečnostních důvodů proveďte před spuštěním zkoušku:
rsync -av --dry-run --delete /source/ /dest/Vysvětlení nejpoužívanějších voleb rsync
Zapamatujte si tyto základní příznaky, abyste se mohli rychle pohybovat a vyhnout se chybám:
-a(archiv): Rekurzivně kopírujte a zachovávejte oprávnění, vlastnictví, časová razítka, symbolické odkazy a další.-v(podrobně): Zobrazit více výstupu. Kombinovat s-aas-av.-z(komprimovat): Komprimuje data během přenosu, ideální pro WAN spojení.-P(pokrok + částečný): Zobrazit průběh a ponechat částečné soubory pro rychlejší obnovení.--info=progress2: Jeden kumulativní ukazatel průběhu pro velké běhy.-e ssh: Použijte SSH jako transport pro šifrování a ověřování.--delete: Odstraňte soubory v cílovém umístění, které již neexistují ve zdroji (zrcadle).--exclude/--include: Přeskočit nebo zahrnout konkrétní soubory/vzory.--exclude-from=FILE: Načíst vzory vyloučení ze souboru.--bwlimit=KBPS: Omezte šířku pásma, abyste zabránili přetížení spojů.--checksum: Porovnávejte podle kontrolního součtu, nikoli podle velikosti/času (pomalejší, přesnější).--partial: V případě přerušení uchovávejte částečně přenesené soubory.--backup --backup-dir=DIR: Uložte upravené/odstraněné soubory do záložního adresáře.
Chování koncového lomítka (důležité pro vyhnutí se chybám)
rsync zachází s koncovým lomítkem ve zdrojovém kódu odlišně:
rsync -av /src/ /dst/znamená „kopírovat obsah/srcdo/dst".rsync -av /src /dst/znamená „kopírovat adresářsrcsebe do/dst„(výsledek:/dst/src/...).
Při zrcadlení obsahu adresáře přidejte koncové lomítko u zdroje.
Běžné případy použití rsync s reálnými příklady
1) Lokální zálohy s archivačním režimem
Zachovat atributy a kopírovat pouze změněné soubory:
rsync -av /home/user/Pictures/ /mnt/backup/Pictures/2) Bezpečná vzdálená synchronizace přes SSH
Použijte SSH pro šifrování a ověřování na základě klíče:
# Default SSH port (22)
rsync -avz -e ssh /var/www/ user@host:/data/www/
# Custom port (e.g., 2222)
rsync -avz -e "ssh -p 2222" /var/www/ user@host:/data/www/3) Zrcadlení adresáře (Přidat/Odstranit podle zdroje)
Ujistěte se, že cíl je přesným zrcadlem:
# Always dry-run first to confirm deletions
rsync -av --dry-run --delete /srv/files/ /srv/mirror/
# Then run for real
rsync -av --delete /srv/files/ /srv/mirror/4) Vyloučení souborů a složek
Přeskočte dočasné soubory, mezipaměti nebo velké složky, které nepotřebujete:
rsync -av --exclude=".git" --exclude="node_modules" --exclude="*.tmp" \
/project/ /backup/project/Pro lepší čitelnost použijte soubor s vyloučením:
# exclude.txt
.git
node_modules
*.tmp
cache/rsync -av --exclude-from=exclude.txt /project/ /backup/project/5) Přírůstkové zálohy s verzemi
Efektivně ukládejte denní snímky pomocí pevných odkazů (--link-dest), šetří místo a zároveň zachovává historii:
# Prepare directories
sudo mkdir -p /backups/www
cd /backups/www
# Create a dated snapshot using link-dest to the latest one
DATE=$(date +%F)
rsync -a --delete \
--link-dest=/backups/www/latest \
/var/www/ /backups/www/$DATE/
# Update the "latest" symlink
rm -f /backups/www/latest
ln -s /backups/www/$DATE /backups/www/latestDíky tomu vznikají rychlé a prostorově efektivní denní zálohy a zároveň můžete procházet data nebo je obnovovat kdykoli během dne.
6) Obnovení přerušených přenosů
Použijte -P (nebo --partial --progress) pro obnovení a zobrazení průběhu:
rsync -avP -e ssh /large/archive.iso user@host:/srv/archive/7) Ověření integrity pomocí kontrolních součtů
Pokud je přesnost důležitější než rychlost, vynuťte porovnání kontrolních součtů:
rsync -av --checksum /source/ /dest/Nejlepší bezpečnostní postupy pro rsync
- Preferujte SSH doprava (
-e ssh) s ověřováním na základě klíče a zakázáním přihlašování heslem na serverech. - Pro zálohování používejte omezený uživatelský účet (s nejnižšími oprávněními). Pokud to není nutné, nespouštějte zálohu jako root.
- Pro vzdálené stahování, které potřebují pouze soubory root, zvažte
sudo rsyncs těsnýmsudoerspravidlo. - Omezit SSH podle IP adresy a portu a používejte pravidla firewallu; přidejte 2FA nebo hardwarové klíče pro kritické hostitele.
- Vyhněte se přímému zpřístupňování démona rsync na internetu, pokud plně nerozumíte ACL modulů a ověřování.
On managed VPS nebo dedikované servery na adrese YouStable, můžete povolit SSH zásady přístupu pouze s klíčem a firewallu od prvního dne pro bezpečné zálohování založené na rsync bez potíží.
Tipy pro ladění výkonu
- Komprese přes WAN:
-zV rychlých lokálních sítích LAN může komprese zpomalit přenosy – otestujte oba způsoby. - Efektivně zobrazujte pokrok:
--info=progress2pro velké operace. - Vyberte strategii přenosu:
--whole-fileupřednostňuje propustnost LAN;--inplacevyhýbá se dočasným souborům pro velmi rozsáhlé aktualizace. - Přeskakování šumu: Použijte
--excludevzory, aby se zabránilo protokolování, mezipamětím a artefaktům sestavení. - V případě potřeby přidejte plyn:
--bwlimit=20480limity na ~20 MB/s pro ochranu produkčního provozu. - Navýšit SSH výkon šifer: vyzkoušet
-e "ssh -c aes128-gcm@openssh.com"na moderní OpenSSH pro rychlejší šifrování.
Režim démona Rsync (pokročilý)
rsync může běžet jako démon (TCP 873) obsluhující pojmenované moduly. To může být efektivní v důvěryhodných sítích, ale vyžaduje pečlivé ACL a autorizaci. Minimální příklad:
# /etc/rsyncd.conf
uid = nobody
gid = nogroup
use chroot = yes
read only = yes
hosts allow = 10.0.0.0/24
[files]
path = /srv/exports/files
comment = Files exportDočasně spusťte démona:
sudo rsync --daemon --config=/etc/rsyncd.confPřipojení z klienta:
rsync -av rsync://server/files/ /local/dir/Řešení běžných chyb rsync
Oprávnění bylo odepřeno
Způsobit: nedostatečná oprávnění nebo SSH problémy s ověřováním. Oprava: zajištění správných oprávnění uživatelů, souborů a klíčů SSH, Pokusit se sudo případně nebo upravit vlastnictví s chown.
Nastavení časů/vlastnictví se nezdařilo
Způsobit: neběží jako uživatel s oprávněními. Oprava: spusťte rsync s sudo na místě určení nebo se vyhnout zachování vlastnictví (--no-owner --no-group), když to není potřeba.
mkstemp selhal: Přístup byl odepřen.
Způsobit: omezení zápisu do cílového adresáře. Oprava: zkontrolujte oprávnění adresáře a volné místo; zkuste to --inplace pokud jsou dočasné soubory blokovány.
Neshoda verzí protokolu
Způsobit: velmi starý rsync na jedné straně. Oprava: aktualizace rsync na obou koncových bodech. Použití SSH Transport se obvykle vyhýbá problémům s protokolem démona.
Rsync vs. SCP vs. Rclone: Kdy co použít
- rsync: Nejlepší pro přírůstkové synchronizace, zrcadlení, zálohy a částečné delta aktualizace lokálně nebo přes síť SSHBohatá logika vyloučení/zahrnutí.
- SCP/SFTP: Jednoduché kopírování souborů SSHŽádný delta algoritmus ani pokročilá synchronizační logika; vhodné pro ad hoc přenosy.
- klon: Synchronizace s cloudem nejprve do S3, GCS, OneDrive atd. Pokud je vaším cílem objektové úložiště, je ideální rclone; pro POSIX servery vítězí rsync.
Praktické hostingové postupy (WordPress, LAMP a další)
Nasazení webu na platformě WordPress
Bezpečná synchronizace motivu a nahraných souborů:
# From staging to production, preserving permissions
rsync -avz -e ssh --exclude="wp-content/cache" \
/var/www/stage.example.com/ wpuser@prod:/var/www/example.com/Pro dokončení nasazení proveďte export/import databáze. Pro migrace bez výpadků přepněte web do režimu údržby, rsyncujte soubory, synchronizujte databázi a poté ukončete údržbu.
Noční zálohy serveru
Spusťte cron úlohu, která používá --link-dest vytvářet datované snímky. Uložte je na samostatný disk nebo vzdálený zálohovací server. Pokud používáte YouStableVPS nebo dedikovaný hosting, nakonfigurujte zabezpečený externí cíl a sledujte šířku pásma pomocí --bwlimit pro předvídatelná okna zálohování.
Migrace webu mezi hostiteli
Použijte rsync přes SSH kopírovat /var/www, konfigurační soubory v /etc (opatrně) a uživatelská data. Během plánovaného okna pro přechod proveďte závěrečnou delta synchronizaci, abyste zachytili změny na poslední chvíli, a poté přepněte DNS.
Tipy od profesionálů z terénu
- Vždy proveďte nácvik na suchu s
--dry-runpřed použitím--delete. - V cron skriptech používejte absolutní cesty, abyste se vyhnuli překvapením ze změny pracovních adresářů.
- Výstup protokolu s
--log-file=/var/log/rsync-backup.logpro audity a řešení problémů. - Kombinujte rsync se snapshoty (LVM, ZFS, Btrfs) pro konzistentní zálohování živých dat.
- U databází nejprve vypsat (
mysqldumporpg_dump), poté pomocí rsync synchronizujte soubory s výpisem.
Nejčastější dotazy
Je rsync rychlejší než scp?
Ano, pro opakované přenosy nebo velké adresáře je rsync obvykle rychlejší, protože kopíruje pouze změněná data. scp vždy přenáší celé soubory. Při první úplné kopii mohou být rychlosti podobné; rsync vyniká při dalších spuštěních.
Provádí rsync automaticky inkrementální zálohy?
rsync vždy přenáší pouze změněné části, ale pro verzované snímky musíte použít --link-dest or --backup --backup-dirToto ukládá inkrementální historii a zároveň udržuje nízké využití prostoru prostřednictvím pevných odkazů.
Jak mohu čistě vyloučit více vzorů?
Vytvořte soubor s jedním vzorem na řádek (např. exclude.txt) a používat --exclude-from=exclude.txtTo je snadněji udržovatelné než řetězení mnoha --exclude příznaky ve skriptech.
Který port používá rsync?
Přes SSH, rsync používá SSH port (výchozí 22). V režimu démona používá TCP 873. Pro nastavení s přístupem k internetu preferujte SSH a omezit přístup pomocí firewallu a klíčů.
Proč se oprávnění k souborům v cílovém umístění liší?
Ujistěte se, že používáte -a zachovat metadata a spustit se s dostatečnými oprávněními v cílovém umístění. Souborové systémy připojené s omezujícími možnostmi nebo vzdálení uživatelé bez vlastnických práv mohou zabránit správnému uchování.
Jak mohu zrychlit rsync na vysokorychlostní LAN?
Zakázat kompresi (--no-compress nebo vynechat -z) a zvažte --whole-file. Navýšit SSH šifrovací výkon a vyloučení nepotřebných souborůPoužívejte SSD disky na obou koncích, abyste odstranili úzká hrdla I/O.
Je rsync bezpečný pro živé webové stránky?
Ano, zejména u statických datových zdrojů. U dynamických webů (WordPress) přepněte web během závěrečných synchronizací do režimu údržby a provádějte atomickou výpis/synchronizaci databází. Pro transakční konzistenci na vytížených serverech používejte snapshoty nebo okna údržby.