Membedah flag yang paling sering dipakai dalam satu episode: -a (archive), -v (verbose), -h (human-readable), -z (kompresi), -P (--partial dan --progress), --delete untuk mirroring, serta -n (dry-run) sebagai pengaman sebelum eksekusi.

Sejauh ini kalian sudah menjalankan rsync -avh tanpa tahu betul apa yang terjadi di balik setiap huruf. Episode 5 mengubah itu: kita bedah satu per satu flag penting yang akan menyertai hampir semua perintah rsync kalian. Menguasai flag berarti menguasai bahasa rsync — dan menghindari kejutan seperti mode permission berubah atau file tersilakan terhapus.
-a adalah flag terpenting. Ia bukan satu perilaku, melainkan gabungan dari beberapa flag sekaligus:
-a = -rlptgoD| Huruf | Arti |
|---|---|
r | Rekursif — turun ke semua subdirektori |
l | Symlink — simpan sebagai symlink, bukan salin targetnya |
p | Permissions — pertahankan izin file |
t | Times — pertahankan mtime (dasar delta-transfer) |
g | Group — pertahankan group ownership |
o | Owner — pertahankan owner |
D | Device & special files — pertahankan perangkat dan file khusus |
Dengan -a, backup kalian menjadi cermin fidelitas tinggi: file di tujuan akan memiliki permission, owner, timestamp, dan symlink yang sama dengan sumber. Inilah mengapa -a disebut archive mode — ia menghasilkan salinan arsip yang setia.
Note
-a tidak menyertakan ACL (-A), extended attributes (-X), atau hardlink (-H). Tiga hal itu kita tambahkan di episode 15. Kebiasaan di server migrasi: rsync -avHAX — kombinasi lengkap untuk fidelitas maksimum.
-v (verbose) — menampilkan daftar file yang sedang ditransfer. Tambahkan -v lagi (-vv, -vvv) untuk debug lebih dalam. Di produksi, -v membantu memantau apa yang sebenarnya dikerjakan; tanpa -v, rsync hampir tidak bersuara.-h (human-readable) — menampilkan ukuran dalam format mudah dibaca (KB, MB, GB) di output ringkasan, bukan byte mentah.rsync -avh src/ dest/Output ringkasannya — sent, received, speedup — hanya terbaca dengan nyaman jika -h aktif.
-z mengompresi data selama transfer:
rsync -avhz src/ dest/-z paling menguntungkan di jaringan lambat atau jauh (WAN, VPN, lintas benua) karena mengurangi byte yang melewati koneksi. Sebaliknya, di jaringan lokal cepat atau disk-to-disk, kompresi justru menambah beban CPU dan bisa memperlambat — file yang sudah terkompresi (video, zip, image) tidak bisa dikompres lagi. Kita ukur dampaknya secara kuantitatif di episode 12.
-P adalah kependekan dari dua flag sekaligus:
--partial — simpan file yang transfernya terputus sebagai file parsial, supaya bisa dilanjutkan, alih-alih dibuang.--progress — tampilkan progress real-time: persentase, kecepatan, dan perkiraan waktu selesai.rsync -avhP src/ dest/Kombinasi -P sangat berharga untuk file besar (database dump, image): kalau koneksi putus di 60%, rsync menyimpan 60% yang sudah jadi dan melanjutkan dari sana pada percobaan berikutnya, bukan mulai dari nol. Detail mekanisme partial ada di episode 7.
--delete membuat tujuan identik dengan sumber dengan menghapus file ekstra di tujuan:
rsync -avh --delete src/ dest/Kegunaannya: menjaga mirror agar tidak menumpuk file yang sudah dihapus di sumber. Tanpa --delete, tujuan hanya bertambah, tidak pernah berkurang — lama-lama backup menampung sampah yang "sudah tidak ada" di sumber.
Warning
--delete adalah pedang bermata dua. Contoh kesalahan klasik: rsync -avh --delete dest/ src/ (terbalik arah) akan menghapus isi src karena "mirroring" dari dest. Selalu uji dengan -n dulu, dan jangan pernah menaruh --delete di perintah interaktif yang di-typo. Variasi yang lebih aman: --delete-before, --delete-after, --delete-excluded (episode 9).
-n (dry-run) menjalankan rsync tanpa melakukan apa pun — hanya menampilkan apa yang akan dilakukan:
rsync -avh --delete -n src/ dest/Dry-run adalah pengaman nomor satu. Gabungkan dengan -i (itemize, episode 16) untuk melihat perubahan spesifik per file sebelum eksekusi. Kebiasaan produksi: selalu dry-run dulu untuk perintah yang menyentuh data penting.
| Perintah | Arti |
|---|---|
rsync -avh src/ dest/ | Backup standar |
rsync -avhP src/ dest/ | Backup + progress + resume aman |
rsync -avhz --delete src/ dest/ | Mirror jarak jauh |
rsync -avh --delete -n src/ dest/ | Dry-run mirror |
Mulai dari kombinasi ini, kalian tinggal menambah flag khusus sesuai kebutuhan: filter (episode 6), throttle (episode 12), atau checksum (episode 16).
Pada episode 5 ini, kalian telah menguasai enam flag paling penting dalam kosakata rsync.
Inti yang harus dibawa pulang:
-a = -rlptgoD — fidelitas penuh: permission, timestamp, owner, symlink, device.-v verbose, -h human-readable, -z kompresi (untung di WAN, rugi di LAN).-P = --partial + --progress — resume transfer terputus.--delete membuat mirror persis; selalu uji dry-run dulu.-n dry-run adalah pengaman nomor satu sebelum eksekusi.Di episode 6 selanjutnya, kita belajar memilih file: --exclude, --include, --exclude-from, pola /dir/ vs dir/, dan kasus nyata mengecualikan .git/, node_modules, cache, serta file sementara dari backup. Sampai jumpa di episode 6!