Skip to main content
🚀 nusa.id cloud server linux indonesialihat paket

Sinkronisasi File dengan Rsync di Linux

· 4 min read
Ilhamsyah
Maintainer

Proses backup database 50 GB memakan waktu berjam-jam jika harus menyalin ulang dari awal setiap kali. Dalam praktiknya, hanya sebagian kecil data yang berubah antar backup. Rsync memanfaatkan pola ini: ia mentransfer hanya perbedaan antara sumber dan tujuan — menghemat bandwidth hingga 90% pada backup berulang.

Cara Kerja Rsync

Rsync adalah utilitas baris perintah untuk menyalin dan menyinkronkan file secara lokal maupun jarak jauh. Keunggulan utamanya dibandingkan cp atau scp:

  • Delta transfer — hanya mengirim bagian file yang berubah, bukan seluruh file
  • Kompresi — mentransfer data dalam bentuk terkompresi untuk menghemat bandwidth
  • Preserve atribut — mempertahankan izin file, kepemilikan, timestamp, dan symlink
  • Resume ability — transfer yang terputus bisa dilanjutkan dari titik terakhir

Rsync sudah terinstal secara default di sebagian besar distribusi Linux, termasuk Ubuntu 24.04 yang umum digunakan di Nusa Cloud VPS.

Prasyarat

  • Server dengan Nusa Cloud VPS atau mesin Linux lokal
  • Akses sudo untuk instalasi (jika perlu)
  • Koneksi SSH ke server jarak jauh (untuk transfer jarak jauh)
  • Space disk yang cukup di tujuan

Pastikan Rsync sudah terinstal:

rsync --version

Jika belum ada, instal dengan:

sudo apt update
sudo apt install rsync -y

Sintaks Dasar Rsync

Format perintah Rsync:

rsync [opsi] sumber tujuan

Sumber dan tujuan bisa berupa direktori lokal, atau user@host:path untuk akses jarak jauh melalui SSH.

Opsi yang Paling Sering Digunakan

OpsiFungsi
-aMode arsip: rekursif, preserve symlink, permission, timestamp, owner, group
-vVerbose — tampilkan file yang diproses
-zKompres data selama transfer
-hOutput ukuran dalam format human-readable
--progressTampilkan progres transfer per file
--deleteHapus file di tujuan yang tidak ada di sumber
--dry-runSimulasi tanpa menulis perubahan
-e sshGunakan SSH sebagai transport

Contoh Penggunaan Rsync

1. Sinkronisasi Lokal

Salin direktori data ke /backup:

rsync -avh /home/user/data/ /backup/data/

Perhatikan garis miring (/) setelah data/ — ini berarti salin isi direktori, bukan direktori itu sendiri. Tanpa garis miring (/home/user/data), Rsync akan membuat sub-direktori data di dalam /backup.

2. Transfer ke Server Jarak Jauh

Kirim direktori website ke server Nusa Cloud VPS:

rsync -avz -e ssh /var/www/html/ user@203.0.113.10:/var/www/html/

3. Backup dengan Hapus File yang Tidak Ada di Sumber

Sinkronisasi satu arah di mana file di tujuan yang sudah tidak ada di sumber akan dihapus:

rsync -avh --delete /sumber/data/ /tujuan/data/

Gunakan dengan hati-hati — opsi --delete bersifat destruktif terhadap file yang tidak ada di sumber.

4. Simulasi Sebelum Eksekusi

rsync -avh --dry-run /sumber/ /tujuan/

Tidak ada file yang benar-benar ditransfer. Gunakan ini untuk memverifikasi pola file sebelum eksekusi sungguhan.

Sinkronisasi Melalui SSH

Rsync menggunakan SSH sebagai transport default untuk transfer jarak jauh di Ubuntu 24.04. Untuk port SSH non-default:

rsync -avz -e "ssh -p 2222" /sumber/ user@203.0.113.10:/tujuan/

Autentikasi dengan SSH Key

Agar sinkronisasi berjalan tanpa password (penting untuk backup terjadwal), gunakan SSH key:

  1. Generate key pair jika belum ada:

    ssh-keygen -t ed25519
  2. Salin public key ke server tujuan:

    ssh-copy-id -p 2222 user@203.0.113.10

Setelah langkah ini, Rsync tidak akan meminta password.

Skrip Backup Otomatis Harian

Buat skrip sederhana untuk backup harian:

#!/bin/bash
# backup-harian.sh — Backup data ke server tujuan
SOURCE="/var/www/html"
DEST="user@203.0.113.10:/backup/html/"
LOG="/var/log/backup-rsync.log"

rsync -avz --delete -e ssh "$SOURCE" "$DEST" >> "$LOG" 2>&1

if [ $? -eq 0 ]; then
echo "[$(date)] Backup berhasil" >> "$LOG"
else
echo "[$(date)] Backup GAGAL" >> "$LOG"
fi

Jadwalkan dengan cron:

crontab -e

Tambahkan baris berikut untuk backup setiap jam 2 pagi:

0 2 * * * /home/user/backup-harian.sh

Verifikasi Sinkronisasi

Setelah transfer selesai, verifikasi integritas dengan opsi -c (checksum):

rsync -avc /sumber/ /tujuan/

Rsync akan membandingkan checksum setiap file — bukan hanya timestamp dan ukuran. Proses ini lebih lambat tetapi memberikan kepastian bahwa file identik.

Periksa log eksekusi:

cat /var/log/backup-rsync.log

Troubleshooting Umum

MasalahPenyebabSolusi
"Permission denied"Izin direktoriGunakan sudo atau perbaiki permission direktori tujuan
"Connection refused"SSH tidak berjalanPeriksa systemctl status ssh di server tujuan
Transfer lambatTanpa kompresiTambahkan opsi -z untuk kompresi
"File has vanished"File dihapus saat transferJalankan ulang Rsync
Space disk penuhTujuan tidak cukupPeriksa dengan df -h dan hapus file yang tidak perlu

Kesimpulan

Rsync adalah utilitas esensial untuk setiap administrator server. Kemampuannya mentransfer hanya perbedaan, dikombinasikan dengan kompresi dan dukungan SSH, menjadikannya pilihan utama untuk backup dan sinkronisasi di Nusa Cloud VPS. Skrip backup otomatis dengan Rsync dan cron memastikan data Anda aman tanpa pengawasan manual setiap hari.