Sinkronisasi dengan rsync di Linux: Panduan lengkap dan tips praktis

Pembaharuan Terakhir: 16/10/2025
penulis: Isaac
  • Rsync melakukan sinkronisasi berdasarkan perbedaan, menghemat waktu dan bandwidth dengan algoritma delta-transfernya.
  • Garis miring di akhir penting: SOURCE/ menyalin konten; tanpa garis miring di akhir, direktori akan dibuat di dalam tujuan.
  • Keamanan dan keandalan: gunakan SSH, kunci, -P untuk melanjutkan dan --dry-run sebelum --delete.
  • Fleksibilitas lengkap: pengecualian, batasan, kompresi, pencadangan, dan tugas terjadwal dengan cron.

Sinkronisasi dengan rsync di Linux

Jika Anda bekerja dengan Linux dan menangani file setiap hari, rsync adalah alat serbaguna untuk menyinkronkan dan mentransfer data antara direktori lokal dan server jarak jauh dengan cepat, aman, dan efisien. Rsync tidak hanya menyalin, tetapi juga membandingkan dan hanya mengirimkan data yang berubah, sehingga menghemat waktu dan bandwidth.

Dalam panduan praktis ini, Anda akan belajar menguasai rsync langkah demi langkah: mulai dari sintaks dasar dan opsi kunci hingga teknik lanjutan seperti pengecualian, penghapusan aman, melanjutkan transfer, pencadangan, dan otomatisasi cron. Anda juga akan melihat cara menggunakannya dengan SSH, kunci tanpa kata sandi, serta batasan ukuran dan kecepatan.

Apa itu rsync dan mengapa begitu cepat?

Rsync adalah singkatan dari "remote synchronization" (sinkronisasi jarak jauh). Ini adalah alat sumber terbuka untuk menyinkronkan direktori dan file antara lokasi lokal atau jarak jauh (melalui jaringan). Keunggulan utamanya adalah algoritma "delta-transfer": algoritma ini menganalisis metadata dan konten dalam blok dan hanya mentransfer perbedaannya , sehingga secara drastis mengurangi jumlah data yang dikirim.

Program ini tersedia di hampir semua distribusi GNU/Linux dan sistem mirip Unix . Perilakunya mirip dengan cp dan scp , tetapi dengan lebih banyak opsi yang lebih detail: program ini mempertahankan izin, melanjutkan pemotongan, melakukan kompresi secara langsung, mengecualikan pola, menampilkan kemajuan, dan masih banyak lagi.

Sintaks dasar dan konsep kunci

Bentuk umum perintahnya adalah: rsync SOURCE DESTINATION . SOURCE dan DESTINATION dapat berupa jalur lokal atau titik akhir jarak jauh melalui SSH, misalnya user@host:/path.

Saat menggunakan host jarak jauh, sintaksnya adalah: rsync HOST:REMOTE_PATH LOCAL_PATH (pull) atau rsync LOCAL_PATH HOST:REMOTE_PATH (push). Dalam kedua kasus, sumber berada di urutan pertama dan tujuan berada di urutan berikutnya.

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

Ada nuansa penting: garis miring di akhir sumber. SOURCE/ (dengan garis miring) berarti "isi dari SOURCE" ; jika Anda menghilangkan garis miring, rsync akan membuat direktori SOURCE di dalam tujuan.

Periksa dan instal rsync

Pertama, periksa apakah tersedia dengan `rsync --version` ; Anda akan melihat nomor dan protokolnya. Jika Anda tidak memilikinya, Anda dapat menginstalnya menggunakan penginstal distribusi Anda.

# 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

Jika Anda mengelola server dari Windows , Anda dapat terhubung melalui SSH menggunakan PuTTY dan menjalankan perintah yang sama dari terminal jarak jauh.

Memulai: Sinkronisasi Lokal Cepat

Siapkan dua folder uji dan beberapa file kosong. Ini akan memungkinkan Anda untuk melihat perbedaan antara menyalin semuanya dan hanya memperbarui perubahan, berkat algoritma 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

Opsi -r menyalin secara rekursif; -a (arsip) mencakup -r dan juga mempertahankan izin, pemilik, grup, stempel waktu, dan tautan simbolik.

  Bagaimana cara Menyembunyikan Album Gambar Tersembunyi di iPhone dan iPad

Bar terakhir di titik asal: detail yang menghindari kejutan

Perilaku ini sangat penting: dir1/ mentransfer konten; dir1 menyalin seluruh direktori ke tujuan. Uji dengan aman dengan simulasi.

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

Untuk operasi yang rumit, biasakan menambahkan `-n` atau `--dry-run` dan memeriksa output sebelum benar-benar menjalankan perintah. Ini adalah kebiasaan kecil yang dapat menghemat banyak masalah.

Sinkronisasi jarak jauh dengan SSH: push dan pull

Jika Anda memiliki SSH di mesin jarak jauh dan rsync terpasang di kedua sisi, mengirim atau mengambil data semudah memasukkan path dengan user@host . Secara default, rsync akan menggunakan SSH sebagai "shell jarak jauh".

# 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/

Opsi -z (pemahaman) dan -P (kemajuan + parsial) sangat membantu pada jaringan yang lambat: Anda akan melihat bilah kemajuan dan dapat melanjutkan jika koneksi terputus.

Otentikasi tanpa kata sandi dengan kunci SSH

Untuk mengotomatiskan sinkronisasi, sebaiknya gunakan kunci. Hasilkan pasangan RSA/ed25519, salin kunci publik ke server, dan gunakan dengan rsync untuk menghindari permintaan kata sandi.

# 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/

Jika Anda tidak memiliki izin root pada tujuan , Anda dapat mengabaikan pemilik dan grup dengan –no-o dan –no-g , yang menghindari kesalahan atribusi pada sistem multi-pengguna.

Opsi penting yang akan Anda gunakan setiap saat

Kombinasi yang paling umum mencampur -a (arsip), -v (verbose), -z (kompresi), -P (progress/parsial) tergantung pada kasusnya. Perhatikan hal-hal penting ini.

  • -a: rekursif dan mempertahankan izin, waktu, pemilik, grup, tautan, dan spesial.
  • -v: keluaran yang lebih informatif; dengan -h Anda akan melihat ukuran yang “dapat dibaca manusia”.
  • -z: kompres selama transfer (hindari jika file sudah dikompresi).
  • -P: setara dengan –progress + –partial; ideal untuk tautan yang tidak stabil.
  Cara mengubah RPM kipas kartu grafis Anda

Juga sangat berguna: -u (perbarui, tidak menimpa jika tujuan lebih baru), -n (uji coba) dan -e untuk shell jarak jauh (misalnya, SSH dengan port atau kunci).

Kemajuan, kompresi, dan dimulainya kembali tanpa membuang waktu

Untuk memvisualisasikan apa yang sedang terjadi dan menghindari memulai dari awal setelah jeda, `-azP` biasanya merupakan solusi yang tepat . Anda akan melihat berapa banyak yang tersisa, dan `rsync` akan menyimpan sebagian data untuk melanjutkan.

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

Jika setelah mengubah tanggal dengan perintah `touch` atau memodifikasi beberapa file Anda menjalankan perintah tersebut lagi, hanya yang telah diubah yang akan dikirim , yang menegaskan efisiensi transfer delta.

Pengecualian dan inklusi berdasarkan pola

Jika Anda tidak ingin menyertakan semuanya, gunakan `--exclude` dan `--include` untuk mempersempit pilihan Anda . Anda dapat mengecualikan berdasarkan nama, jalur, atau ekstensi, atau memuat daftar dari sebuah file.

# 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/

Jika Anda berlebihan dalam melakukan pengecualian, Anda selalu dapat membalikkan logika dengan –include untuk mengizinkan apa yang benar-benar Anda inginkan dan memblokir sisanya dengan –exclude "*".

Penghapusan terkendali di tujuan (–hapus dan varian)

Untuk sinkronisasi "cermin", aktifkan `--delete` dan file yang tidak lagi ada di sumber akan dihapus dari tujuan. Gunakan ini dengan hati-hati dan selalu uji dengan `--dry-run` terlebih dahulu.

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

Kebijakan penghapusan: –delete-before (menghapus sebelum transfer), –delete-during (selama penerimaan; default di versi modern), dan –delete-delay (mendeteksi file yang hilang dan menghapus di akhir). –delete-after ada, tetapi biasanya kurang efisien kecuali dalam skenario yang sangat spesifik.

Batasan ukuran dan bandwidth

Untuk menghindari kelebihan beban jaringan atau penyaringan berdasarkan ukuran, gunakan `--max-size` dan `--min-size` bersama dengan `--bwlimit` . Ini berguna untuk penyalinan massal atau pencadangan dengan kebijakan tertentu.

# 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/

Saat memindahkan banyak file kecil, opsi -W/-whole-file memaksa seluruh file untuk dikirim dan dapat mempercepat proses jika delta tidak mengimbangi latensi.

Pencadangan tanpa repot (–backup dan –backup-dir)

Jika Anda khawatir akan menimpa data yang sudah ada, kombinasikan `--backup` dengan `--backup-dir` untuk menyimpan versi sebelumnya di folder cadangan. Ini adalah "jaring pengaman" yang sangat berguna.

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

Dengan cara ini, setiap file yang dimodifikasi atau dihapus di tujuan akan aman di direktori yang ditunjukkan, sehingga memudahkan untuk mengembalikan perubahan dengan cepat jika terjadi sesuatu yang tidak sesuai rencana.

  Cara membuka kunci dan menyesuaikan layar di Windows 11

Otomatiskan dengan cron (tanpa perintah atau gangguan)

Untuk menjalankan sinkronisasi rutin, tambahkan entri ke cron. Gunakan kunci SSH, hindari `--progress`, dan secara opsional, buat salinan log untuk keperluan audit.

# 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

Jika Anda melakukan sinkronisasi ke arah sebaliknya, balikkan SUMBER dan TUJUAN. Pencatatan dengan `--log-file` atau pengalihan akan membantu Anda meninjau apa yang ditransfer dan kapan.

Trik tingkat lanjut dan skenario kehidupan nyata

Selain opsi klasik, rsync memiliki opsi yang kurang dikenal tetapi sangat berguna: -c (checksum, mengabaikan tanggal/ukuran dan membandingkan berdasarkan hash), –size-only (hanya ukuran), -I/–ignore-times (menyalin semuanya), –remove-source-files (memindahkan alih-alih menyalin, tidak menghapus direktori).

# 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/

Dengan server jarak jauh, Anda dapat menyinkronkan dua mesin Linux melalui SSH setiap jam menggunakan cron dan kunci. Jika Anda membutuhkan sinkronisasi mendekati waktu nyata, coba Lsyncd , sebuah daemon yang bereaksi terhadap perubahan sistem file dan secara otomatis memanggil rsync. Jika Anda lebih menyukai antarmuka grafis, coba sinkronkan folder lokal dan jaringan dengan FreeFileSync.

Contoh ringkas untuk membantu Anda keluar dari masalah

Berikut beberapa resep cepat yang perlu diingat. Anda dapat dengan mudah menyesuaikannya dengan rute dan pengguna Anda .

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

# Sincronizar dos hosts (pull) con progreso
rsync -avP [email protected]:/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/

Saat menangani struktur besar, gabungkan pengecualian, batasan, dan kemajuan untuk memiliki kendali mutlak atas apa yang mengalir dan bagaimana cara kerjanya.

Menguasai rsync adalah soal latihan: bereksperimenlah dengan `--dry-run`, gunakan `-a` sebagai dasar, tambahkan `-z`/`-P` untuk operasi jaringan, dan gunakan `--delete` dengan bijak . Dengan kunci SSH dan cron, Anda akan memiliki sinkronisasi otomatis, aman, dan efisien baik secara lokal maupun antar server.

Sinkronkan folder lokal dan jaringan dengan FreeFileSync
Artikel terkait:
Sinkronkan folder lokal dan jaringan dengan FreeFileSync: Panduan lengkap