rsync (Remote Sync) és una de les eines més
potents i versàtils de Linux per a la còpia i sincronització de
fitxers, tant en local com en remot. La seva característica
principal és l’algorisme delta: només transfereix les
diferències entre fitxers, estalviant temps i amplada de banda.
grsync és una interfície gràfica (GUI)
per a rsync, que facilita el seu ús a usuaris menys
familiaritzats amb la línia d’ordres.
rsync-z).# Debian/Ubuntu
sudo apt install rsync
# Fedora/RHEL
sudo dnf install rsync
# Arch/Manjaro
sudo pacman -S rsyncrsync [OPCIONS] ORIGEN DESTÍL’origen i el destí poden ser:
/home/ramon/documents/usuari@host:/ruta/usuari@host::mòdulImportant: La barra final (
/) a l’origen té significat:
rsync origen/ destí/→ copia el contingut d’origen dins destí
rsync origen destí/→ copia el directori origen dins destí (creadestí/origen/)
| Opció | Descripció |
|---|---|
-a, --archive |
Mode arxiu: preserva permisos, dates, propietari, grups, enllaços
simbòlics, dispositius. Equivalent a -rlptgoD |
-v, --verbose |
Mostra els fitxers processats |
-z, --compress |
Comprimeix les dades durant la transferència |
-r, --recursive |
Copia recursivament directoris |
-u, --update |
Salta fitxers al destí que siguin més nous |
-n, --dry-run |
Simulació: mostra què faria sense fer res |
-P |
Equivalent a --progress --partial: mostra progrés i
reprèn |
--progress |
Mostra el progrés de cada fitxer |
--partial |
Conserva els fitxers parcialment transferits |
-e |
Especifica el programa de transport remot (p. ex. ssh) |
--delete |
Elimina al destí els fitxers que ja no existeixen a l’origen |
--exclude |
Exclou fitxers o directoris per patró |
--include |
Inclou fitxers que coincideixen amb el patró |
--filter |
Regles de filtratge avançades |
--bwlimit |
Limita l’amplada de banda (en KB/s) |
-h, --human-readable |
Mostra mides en format llegible (KB, MB, GB) |
--stats |
Mostra estadístiques al final |
--checksum |
Compara fitxers per checksum en lloc de data/mida |
--link-dest |
Fa còpies incrementals amb enllaços durs (hard links) |
-l |
Copia els enllaços simbòlics com a tals |
-p |
Preserva els permisos |
-t |
Preserva les dates de modificació |
-o |
Preserva el propietari (cal ser root) |
-g |
Preserva el grup |
--log-file |
Desa un registre de l’operació en un fitxer |
# Copiar un directori localment
rsync -av /home/ramon/documents/ /backup/documents/
# Sincronitzar eliminant fitxers esborrats a l'origen
rsync -av --delete /home/ramon/documents/ /backup/documents/
# Simulació prèvia
rsync -avn --delete /home/ramon/documents/ /backup/documents/# Copiar directori local cap a servidor remot
rsync -avz /home/ramon/web/ usuari@servidor.cat:/var/www/html/
# Copiar des d'un servidor remot cap a local
rsync -avz usuari@servidor.cat:/var/www/html/ /backup/web/
# Especificar port SSH diferent de 22
rsync -avz -e "ssh -p 2222" /dades/ usuari@servidor.cat:/backup/dades/
# Amb clau SSH privada
rsync -avz -e "ssh -i ~/.ssh/id_rsa" /dades/ usuari@servidor.cat:/backup/# Excloure un directori
rsync -av --exclude='node_modules/' /projecte/ /backup/projecte/
# Excloure múltiples patrons
rsync -av --exclude='*.tmp' --exclude='*.log' --exclude='.git/' /projecte/ /backup/
# Usar un fitxer d'exclusions
rsync -av --exclude-from='exclusions.txt' /dades/ /backup/
# Contingut d'exclusions.txt:
# *.tmp
# *.log
# .git/
# node_modules/
# __pycache__/# Limitar a 1 MB/s
rsync -avz --bwlimit=1000 /dades/ usuari@servidor.cat:/backup/--link-dest# Primera còpia completa
rsync -av /home/ramon/ /backup/2025-06-01/
# Còpies incrementals (els fitxers no canviats s'enllaçen amb hard links)
rsync -av --link-dest=/backup/2025-06-01/ /home/ramon/ /backup/2025-06-02/
rsync -av --link-dest=/backup/2025-06-02/ /home/ramon/ /backup/2025-06-03/Cada directori de còpia sembla una còpia completa, però ocupa molt poc espai gràcies als hard links.
rsync com a dimonirsync pot funcionar com a dimoni independent (sense
SSH), útil per a sincronitzacions internes a la xarxa:
/etc/rsyncd.conf[backup]
path = /srv/backup
comment = Directori de còpies de seguretat
read only = false
auth users = ramon
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.1.0/24/etc/rsyncd.secretsramon:contrasenya_segurachmod 600 /etc/rsyncd.secretssudo systemctl enable --now rsyncrsync -av usuari@servidor::backup /backup/local/# Backup diari a les 2:00 de la matinada
0 2 * * * rsync -avz --delete /home/ramon/ /backup/home/ >> /var/log/rsync_backup.log 2>&1rsync divideix cada fitxer en blocs i calcula checksums.
Compara els checksums entre origen i destí i només transfereix els blocs
que difereixen. Això el fa molt eficient per a:
rsync -avh --stats /origen/ /destí/Exemple de sortida amb --stats:
Number of files: 1,234
Number of created files: 12
Number of deleted files: 3
Number of regular files transferred: 45
Total file size: 2.34G bytes
Total transferred file size: 12.5M bytes
Literal data: 12.5M bytes
Matched data: 2.33G bytes
File list size: 45.6K
Total bytes sent: 12.6M
Total bytes received: 1.23Kgrsync:
interfície gràfica per a rsyncgrsync és una aplicació GTK que proporciona una
GUI amigable per configurar i executar operacions rsync sense necessitat de recordar opcions de línia
d’ordres.
# Debian/Ubuntu
sudo apt install grsync
# Fedora/RHEL
sudo dnf install grsync
# Arch/Manjaro
sudo pacman -S grsyncrsync.rsync mentre s’executa.rsync equivalent que executarà.La interfície agrupa les opcions en pestanyes:
Opcions bàsiques:
--delete)Opcions avançades:
grsync permet desar configuracions com a
sessions amb nom:
backup_home, sincro_web).Les sessions es desen a ~/.grsync/ en format text
pla.
grsync permet obrir directament una sessió guardada:
grsync --session="backup_home"Això facilita l’automatització des de scripts o cron mantenint la configuració visual.
rsync vs. altres eines| Eina | Ús | Avantatges | Inconvenients |
|---|---|---|---|
rsync |
Còpia/sincronització general | Incremental, SSH, molt configurable | Sintaxi complexa per a novells |
cp |
Còpia simple local | Senzill | Sense incremental ni remot |
scp |
Còpia remota via SSH | Senzill per a fitxers puntuals | Sense incremental |
sftp |
Transferència interactiva SSH | Interactiu | Manual, sense automatització |
unison |
Sincronització bidireccional | Detecta canvis en ambdós extrems | Més complex de configurar |
rclone |
Sincronització amb cloud | Suporta S3, Drive, Dropbox, etc. | No usa l’algorisme delta d’rsync |
Sempre fer un --dry-run primer
(-n) per veure què canviarà.
Anar amb compte amb --delete:
eliminarà fitxers al destí de manera permanent.
Usar --backup per conservar
versions anteriors dels fitxers sobreescrits:
rsync -av --backup --backup-dir=/backup/old/ /origen/ /destí/Verificar la barra final a l’origen per evitar duplicació de directoris.
Logs: sempre redirigir la sortida a un fitxer quan s’automatitza.
Connexions SSH: usar claus sense contrasenya per a tasques automatitzades.
Provar la connectivitat abans d’automatitzar tasques remotes.
# 1. Mirror d'un lloc web
rsync -avz --delete /var/www/html/ usuari@servidor2:/var/www/html/
# 2. Còpia de seguretat de /home excloent fitxers grans
rsync -avz --exclude='*.iso' --exclude='*.vmdk' /home/ /backup/home/
# 3. Sincronització bidireccional (amb precaució)
# Origen → Destí
rsync -av /dades/ /backup/
# Destí → Origen (si cal)
rsync -av /backup/ /dades/
# 4. Transferència amb progrés visible
rsync -avhP fitxer_gran.iso usuari@servidor:/tmp/
# 5. Còpia preservant ACL i atributs estesos
rsync -avAX /origen/ /destí/# Còpia local bàsica
rsync -av /origen/ /destí/
# Còpia amb sincronització (elimina al destí)
rsync -av --delete /origen/ /destí/
# Còpia remota
rsync -avz /origen/ usuari@host:/destí/
# Simulació
rsync -avn --delete /origen/ /destí/
# Amb progrés
rsync -avhP /origen/ /destí/
# Excloure patrons
rsync -av --exclude='*.tmp' /origen/ /destí/
# Còpia incremental amb hard links
rsync -av --link-dest=/backup/anterior/ /origen/ /backup/nou/
# Limitar ample de banda
rsync -avz --bwlimit=500 /origen/ usuari@host:/destí/
# Estadístiques
rsync -avh --stats /origen/ /destí/man rsync — Manual complet de l’ordreman rsyncd.conf — Configuració del dimoni rsyncman grsync — Manual de grsync