Sinhronizacija z rsync v Linuxu: Popoln vodnik in praktični nasveti

Zadnja posodobitev: 16/10/2025
Avtor: Isaac
  • Rsync sinhronizira po razlikah, s čimer prihrani čas in pasovno širino z algoritmom delta prenosa.
  • Pomembne so končne poševnice: SOURCE/ kopira vsebino; ​​brez končne poševnice ustvari imenik znotraj cilja.
  • Varnost in zanesljivost: uporaba SSH, tipke, -P za nadaljevanje in --poskusni zagon pred --delete.
  • Popolna prilagodljivost: izključitve, omejitve, stiskanje, varnostne kopije in načrtovana opravila s cron.

Sinhronizacija z rsync v Linuxu

Če sodelujete s Linux in vsakodnevno upravljate z datotekami, rsync je švicarski nož za sinhronizacijo in prenos podatkov med lokalnimi imeniki in oddaljenimi strežniki hitro, varno in učinkovito. Ne samo kopira, ampak tudi primerja in pošilja le tisto, kar se je spremenilo, s čimer prihrani čas in pasovno širino.

V tem praktičnem vodniku se boste korak za korakom naučili obvladati rsync: od osnovne sintakse in ključnih možnosti do Tricks napredno kot so izključitve, varno brisanje, nadaljevanje prenosov, varnostne kopije in avtomatizacija s cronom. Videli boste tudi, kako ga uporabljati s SSH, ključi brez gesla in omejitvami velikosti ali hitrosti.

Kaj je rsync in zakaj je tako hiter?

Rsync pomeni »oddaljena sinhronizacija«. Je odprtokodno orodje za sinhronizacijo imenikov in datotek med lokalnimi ali oddaljenimi lokacijami (prek omrežja). Njegova glavna prednost je algoritem »delta-prenosa«: analizira metapodatke in vsebino po blokih in prenesti samo razlike, kar drastično zmanjša količino poslanih podatkov.

Na voljo je na praktično vseh distribucijah in operacijskih sistemih GNU/Linux. Unix. Njegovo vedenje spominja na cp in scp, vendar s številnimi bolj natančnimi možnostmi: ohranitev dovoljenj, nadaljevanje rezanja, sproti stiskanje, izključitev vzorcev, prikaz napredka in še veliko več.

Osnovna sintaksa in ključni pojmi

Splošna oblika ukaza je: rsync VIR CILJVIR in CILJ sta lahko lokalni poti ali oddaljeni končni točki prek SSH, na primer uporabnik@gostitelj:/pot.

Pri uporabi oddaljenega gostitelja je sintaksa naslednja: rsync GOSTITELJ:ODDALJENA_POT LOKALNA_POT (vleči, prinesti) ali rsync LOKALNA_POT GOSTITELJ:ODDALJENA_POT (potisni, pošlji). V obeh primerih izvor pride najprej, cilj pa kasneje.

rsync   
rsync  HOST:ORIGEN_REMOTO DESTINO_LOCAL   # PULL
rsync  ORIGEN_LOCAL HOST:DESTINO_REMOTO   # PUSH

Obstaja pomemben odtenek: zadnji takt na začetku. ORIGIN/ (s poševnico) pomeni »vsebina ORIGIN«; če izpustite poševnico, bo rsync ustvaril izvorni imenik znotraj cilja.

Preverite in namestite rsync

Najprej preverite, ali je na voljo z rsync –različica; videli boste številko in protokol. Če ga nimate, ga lahko namestite z upraviteljem vaše distribucije.

# Debian/Ubuntu
sudo apt-get update
sudo apt-get install rsync

# Red Hat / CentOS / Fedora
sudo yum install rsync    # o: sudo dnf install rsync

# macOS (Homebrew)
brew install rsync

Če upravljate strežnik iz Windows, Povežete se lahko prek SSH z uporabo PuTTY in jih izvršiti ukazi iz terminal na daljavo.

Začetek: Hitra lokalna sinhronizacija

Pripravite dve testni mapi in nekaj praznih datotek. Na ta način boste preverili razliko med kopiranjem vsega in posodabljanjem samo sprememb. zahvaljujoč algoritmu rsync.

cd ~
mkdir dir1 dir2
# Crea 100 ficheros vacíos
bash -c 'touch dir1/file{1..100}'

# Sincroniza de dir1 a dir2 (recursivo)
rsync -r dir1/ dir2

# O en modo "archivo" (recomendado)
rsync -a dir1/ dir2

Možnost -r rekurzivno kopiranje; -a (arhiv) vključuje -r in ohrani tudi dovoljenja, lastnika, skupino, časovne žige in simbolne povezave.

  Pravi način za tiskanje iz mobilnega telefona Android z uporabo Google Tiskanja v oblaku

Zadnja takta na začetku: podrobnost, ki preprečuje presenečenja

To vedenje je ključno: dir1/ prenese vsebino; ​​dir1 kopira imenik v večjem obsegu znotraj cilja. Preizkusite ga brez tveganja s suhim testom.

# Ensayo (no cambia nada) y verboso
rsync -anv dir1/ dir2     # contenido de dir1 hacia dir2
rsync -anv dir1  dir2     # crea dir2/dir1/...

Za občutljive operacije se navadite dodajte -n/–dry-run in preverite izhod preden dejansko izvedete. Majhna navada, ki preprečuje razočaranje.

Oddaljena sinhronizacija s SSH: push and pull

Če imate SSH dostop do oddaljenega računalnika in rsync nameščen na obeh straneh, Pošiljanje ali pridobivanje podatkov je tako preprosto kot pot z uporabnikom@gostiteljemPrivzeto bo rsync uporabljal SSH kot »oddaljeno lupino«.

# PUSH: del local al remoto (transferimos el directorio completo)
rsync -a ~/dir1 usuario@servidor:/ruta/destino

# PULL: del remoto al local (traemos contenidos)
rsync -a usuario@servidor:/home/usuario/dir1 /ruta/local

# Especificar el puerto SSH y usar compresión y progreso
rsync -azP -e 'ssh -p 2222' origen/ usuario@servidor:/destino/

Možnosti -z (razumevanje) in -P (napredek + delni rezultati) so božji dar na počasnih omrežjih: Videli boste vrstice napredka in lahko nadaljujete če je povezava prekinjena.

Avtentikacija brez gesla s ključi SSH

Za avtomatizacijo sinhronizacij je priročno uporabljati ključe. Ustvari par RSA/ed25519, javnega kopiraj na strežnik in ga uporabi z rsync da se izognete pozivom za geslo.

# En el cliente (usuario local)
ssh-keygen -t rsa -b 4096 -C "Acceso rsync" -f ~/.ssh/rsync_key -q -N ""
ssh-copy-id -i ~/.ssh/rsync_key.pub usuario@servidor

# Probar acceso por clave
ssh -i ~/.ssh/rsync_key usuario@servidor

# Usar la clave con rsync (dos formas equivalentes)
rsync -az -e 'ssh -i ~/.ssh/rsync_key' origen/ usuario@servidor:/destino/
rsync -az --rsh="ssh -i ~/.ssh/rsync_key" origen/ usuario@servidor:/destino/

Če na cilju nimate dovoljenja koren, lahko Prezri lastnika in skupino z -no-o in -no-g, kar preprečuje napake pripisovanja v večuporabniških sistemih.

Bistvene možnosti, ki jih boste uporabljali ves čas

Najpogostejše kombinacije mešanic -a (arhiv), -v (podrobno), -z (stisni), -P (napredek/delni zapisi) odvisno od primera. Zapišite si te bistvene stvari.

  • -a: rekurzivno in ohranja dovoljenja, čase, lastnika, skupino, povezave in posebne možnosti.
  • -v: bolj informativen izpis; z -h videli boste velikosti, ki jih lahko "beremo človeku".
  • -z: stisnite med prenosom (izogibajte se, če so datoteke že stisnjene).
  • -P: je enakovredno –napredek + –delno; idealno za nestabilne povezave.
  Kako uporabljati Disneyjev filter na TikTok - Postanite Pixarjev lik

Zelo uporabno tudi: -u (posodobitev, ne izvede koraka, če je cilj novejši), -n (poskusni preizkus) in -e za oddaljeno lupino (npr. SSH z vrati ali ključem).

Napredek, stiskanje in nadaljevanje brez izgube časa

Da si predstavljate, kaj se dogaja, in ne začnete iz nič po rezu, -azP je običajno zmagovalni receptVideli boste, koliko je še ostalo, in rsync bo shranil delne dele za nadaljevanje.

rsync -azP origen/ destino/
# Repetirlo cuando no cambie nada da una salida mínima: rsync detecta que todo está al día

Če se po dotiku datljev z na dotik ali spremenite nekatere datoteke, ko znova zaženete ukaz, Poslane bodo samo spremenjene, kar potrjuje učinkovitost delta prenosa.

Izključitve in vključitve po vzorcu

Ko ne želite vzeti vsega, uporabite –izključi in –vključi za natančnejše določanjeIzključite lahko po imenu, poti ali končnici ali pa naložite seznam iz datoteke.

# Excluir un directorio, un fichero y rutas concretas
rsync -av --exclude 'cache/' --exclude 'secreto.doc' --exclude 'ruta/subdir' origen/ destino/

# Excluir desde archivo (uno por línea)
rsync -av --exclude-from 'lista_excluidos.txt' origen/ destino/

# Solo copiar .jpg en toda la jerarquía (incluye directorios, excluye el resto)
rsync -vrhz --include="*/" --include="*.jpg" --exclude="*" original/ duplicados/

Če pretiravate z izključitvami, lahko vedno obrnite logiko z -include dovoliti, kar si resnično želiš, in blokirati ostalo –izključi «*».

Nadzorovano brisanje na cilju (–brisanje in različice)

Za »zrcalno« sinhronizacijo aktivirajte –Izbriši in datoteke, ki v izvoru ne obstajajo več, bodo izginile iz cilja. Uporabljajte ga previdno in vedno poskusite na suho prej

# Sincronización espejo (borra en destino lo que ya no está en origen)
rsync -av --delete origen/ destino/

Pravilniki brisanja: –izbriši-pred (izbriši pred prenosom), –brisanje-med (med sprejemom; privzeto v sodobnih različicah) in –zamik pri brisanju (zazna manjkajoče elemente in jih na koncu izbriše). –izbrisati-po Obstaja, vendar je običajno manj učinkovit, razen v zelo specifičnih scenarijih.

Omejitve velikosti in pasovne širine

Da bi se izognili preobremenitvi omrežja ali filtriranju po teži, uporabite –maksimalna velikost in –min. velikost zraven –omejitev telesne maseUporabno za množično kopiranje ali varnostne kopije s posebnimi pravilniki.

# Solo archivos <= 100 MB y límite de 5 MB/s
rsync -avzh --max-size='100M' --bwlimit=5120 origen/ destino/

# No transferir nada por debajo de 10 KB
dsync -av --min-size=10k origen/ destino/

Ko premaknete veliko majhnih datotek, -W/–whole-file vsili pošiljanje celotne datoteke in se lahko pospeši, če delta ne kompenzira zakasnitve.

Varnostne kopije brez težav (–backup in –backup-dir)

Če vas skrbi prepisovanje, združite – varnostno kopiranje z –imenik-varnostnih-kopij shraniti prejšnje različice v mapo z varnostnimi kopijami. To je zelo praktično »zavarovanje«.

# Guarda versiones reemplazadas/eliminadas en /var/backups/rsync
rsync -a --delete --backup --backup-dir=/var/backups/rsync /ruta/origen/ /ruta/destino/

Tako se bo vsaka datoteka, spremenjena ali izbrisana na cilju, shranila v navedeni imenik, omogočanje hitrega preobrata če kaj ne gre po vaših pričakovanjih.

  Deljenje datotek prek Bluetootha v sistemu Windows 11: Popoln vodnik

Avtomatiziraj s cronom (brez pozivov ali hrupa)

Za izvajanje periodičnih sinhronizacij dodajte vnos cron. Uporabite SSH ključe, izogibajte se -progress in po želji izpišite dnevnik. za revizijo.

# Cada hora, con clave e ignorando propietario y grupo
0 * * * * rsync -arz --no-o --no-g --delete --rsh="ssh -i /home/u/.ssh/rsync_key" /home/u/backup/ u@servidor:"/home/u/backup" >> /var/log/rsync.log 2>&1

Če sinhronizirate v nasprotni smeri, zamenjate VIR in CILJ. Beleženje z –log-file ali preusmeritvijo vam bo pomagal pregledati, kaj je bilo preneseno in kdaj.

Napredni triki in scenariji iz resničnega življenja

Poleg klasičnih ima rsync tudi manj znane, a zelo uporabne zastavice: -c (kontrolna vsota, ignorira datume/velikosti in primerja po zgoščevalni vrednosti), –samo velikost (samo velikost), -I/–prezri-krate (kopiraj vse), –odstrani-izvorne-datoteke (premakni namesto kopiraj, ne izbriši imenikov).

# Solo actualizar si cambia el hash (más preciso, más CPU)
rsync -avuc origen/ destino/

# Mover ficheros (borra en origen los que se copien bien)
rsync -av --remove-source-files origen/ destino/

# Preservar enlaces, dueños y especiales (requiere permisos adecuados)
rsync -aLptgoD origen/ destino/

Z oddaljenimi strežniki lahko sinhronizirajte dva Linux računalnika prek SSH vsako uro s cronom in tipkami. Če potrebujete »skoraj realni čas«, si oglejte Lsyncd, demon, ki se odziva na spremembe datotečnega sistema in samodejno pokliče rsync. Če imate raje grafični vmesnik, poskusite Sinhronizirajte lokalne in omrežne mape s programom FreeFileSync.

Kratki primeri, ki vas bodo rešili iz težav

Tukaj je nekaj hitrih receptov, ki si jih je treba zapomniti. Prilagodite jih lahko svojim poteh in uporabnikom Brez problema.

# Copiar localmente con progreso y tamaños legibles
rsync -avhP /carpeta1/ /carpeta2/

# Sincronizar dos hosts (pull) con progreso
rsync -avP root@X.Y.Z.W:/carpeta1/ /carpeta2/

# Solo archivos modificados (update) a un remoto
rsync -vzh -u posts/*.md blog@host:/ruta/posts/

# Ensayo general (no cambia nada) y listado detallado
rsync -avhni --itemize-changes origen/ destino/

Ko se soočate z velikimi strukturami, združuje izključitve, omejitve in napredek imeti popoln nadzor nad tem, kaj potuje in kako to počne.

Obvladovanje rsync je stvar vaje: Poskusite z -dry-run, uporabite -a kot osnovo, dodajte -z/-P v network in preverite -delete z headom.S ključi SSH in cronom boste imeli samodejne, varne in učinkovite sinhronizacije tako lokalno kot med strežniki.

Sinhronizirajte lokalne in omrežne mape s programom FreeFileSync
Povezani članek:
Sinhronizacija lokalnih in omrežnih map s programom FreeFileSync: Popoln vodnik