Menguasai syntax dasar rsync [OPTIONS] SRC DEST dan praktik pertama mode lokal dengan rsync -avh, termasuk perbedaan krusial trailing slash: src/ menyalin isi direktori sedangkan src menyalin direktori itu sendiri beserta isinya.

Setelah memahami arsitektur di episode 2, saatnya aksi nyata pertama: menjalankan rsync dalam mode lokal. Episode 3 membangun kebiasaan syntax yang benar — karena kesalahan paling umum pemula rsync bukan pada flag, melainkan pada trailing slash. Kita bahas tuntas perbedaannya di episode ini.
Ingat lab kalian di episode 0: ~/rsync-lab/src dan ~/rsync-lab/dest. Kita akan menggunakannya sebagai medan latihan.
Syntax rsync konsisten dan singkat:
rsync [OPTIONS] SRC DESTOPTIONS adalah flag (kita bedah yang penting di episode 5), SRC adalah sumber, dan DEST adalah tujuan. Arahnya selalu satu arah: dari kiri ke kanan. Rsync tidak pernah menyinkronkan dua arah — keterbatasan yang akan kita diskusikan di episode 11.
Siapkan beberapa file sumber, lalu jalankan perintah pertama kita:
cd ~/rsync-lab
mkdir -p src/sub
echo "a" > src/a.txt
echo "b" > src/sub/b.txt
rsync -avh src/ dest/Hasilnya kira-kira seperti ini:
sending incremental file list
./
a.txt
sub/
sub/b.txt
sent 202 bytes received 44 bytes 492.00 bytes/sec
total size is 6 speedup is 0.03-avh adalah kombinasi paling umum: -a (archive — rekursif plus mempertahankan permission, timestamp, symlink, dll), -v (verbose), -h (human-readable ukuran). Detail masing-masing flag ada di episode 5.
src/ vs srcIni bagian paling krusial dan paling sering bikin bingung. Perhatikan baik-baik:
| Perintah | Hasil |
|---|---|
rsync -avh src/ dest/ | Menyalin isi dari src → menghasilkan dest/a.txt, dest/sub/b.txt |
rsync -avh src dest/ | Menyalin direktori src itu sendiri → menghasilkan dest/src/a.txt, dest/src/sub/b.txt |
Trailing slash pada sumber menentukan apakah direktori dibawa sebagai bungkus (src) atau hanya isinya (src/). Mari kita buktikan:
rsync -avh src dest-with-dir/
rsync -avh src/ dest-no-dir/
ls dest-with-dir dest-no-dirls akan memperlihatkan dest-with-dir/src/ dan dest-no-dir/a.txt — bukti nyata betapa satu karakter mengubah struktur hasil.
Tip
Aturan praktis: pakai src/ jika kalian ingin isinya masuk langsung ke DEST (pola paling umum untuk backup), dan src jika kalian ingin struktur DEST/src/ — misalnya saat membackup beberapa direktori ke satu tempat, masing-masing tetap terpisah rapi.
Slash di tujuan tidak seketat sumber, tetapi tetap ada nuansanya: dest/ dan dest umumnya sama-sama berarti "tempat ini". Yang perlu diingat: rsync tidak membuat direktori tujuan jika belum ada untuk kasus tertentu — ia akan membuatnya, tetapi pastikan nama target tidak membingungkan. Contoh: rsync -avh src/ dest/ dengan dest belum ada akan membuat dest/ berisi isi src.
Rsync mendukung banyak sumber menuju satu tujuan — kombinasi yang rawan salah paham dengan trailing slash:
rsync -avh src/sub/ src/other/ dest/Ketika ada dua sumber, masing-masing harus diakhiri slash agar isinya menyatu di tujuan; tanpa slash, rsync akan membungkusnya dalam direktori — atau error karena perilaku ambigu.
Kadang kalian ingin tujuan menjadi cermin persis sumber — termasuk menghapus file ekstra yang ada di tujuan. Itulah fungsi --delete, namun hati-hati:
rsync -avh --delete src/ dest/--delete menghapus di tujuan semua file yang tidak ada di sumber. Ini kuat sekaligus berbahaya — kombinasi yang salah dengan sumber yang salah arah berarti data hilang. Selalu uji dengan dry-run -n dulu. Kita bedah --delete lengkap di episode 5.
Warning
Jangan pernah menggabungkan --delete dengan sumber yang salah arah (misal menukar SRC dan DEST). Satu kesalahan arah + --delete = backup kalian terhapus. Kebiasaan aman: jalankan -n (dry-run) dulu, atau letakkan --delete hanya di script yang sudah teruji.
Ketika kalian melihat output rsync -avh, baris-baris itu adalah daftar file yang dipertimbangkan untuk disinkronkan. Jalankan perintah yang sama dua kali dan perhatikan perbedaannya:
rsync -avh src/ dest/Kedua kalinya, rsync mendeteksi tidak ada perubahan dan mencetak tidak ada file baru (hanya baris . atau pesan singkat). Inilah efisiensi inti rsync: berulang kali menjalankan backup sama cepatnya dengan satu kali — hanya perubahan yang diproses.
Pada episode 3 ini, kalian telah menguasai syntax dasar dan praktik pertama mode lokal.
Inti yang harus dibawa pulang:
rsync [OPTIONS] SRC DEST, arahnya satu arah dari kiri ke kanan.-avh adalah kombinasi flag standar untuk backup harian.src/ = isi, src = direktori beserta isinya.--delete membuat tujuan jadi cermin persis, tetapi berbahaya jika salah arah.Di episode 4 selanjutnya, kita menyeberang ke mode remote: rsync lewat SSH (-e ssh, port custom), push vs pull, lalu mode daemon dengan rsync://host/module/, konfigurasi [module] di /etc/rsyncd.conf, dan autentikasi secrets file. Sampai jumpa di episode 4!