Menyusun strategi backup yang benar: memahami full vs incremental backup, mengapa tar saja tidak cukup, dan pola hardlink snapshot ala time-machine dengan rsync -a --link-dest yang menghasilkan snapshot hemat ruang tanpa duplikasi data.

Sampai episode 7, kalian bisa menyalin dan sinkronisasi. Episode 8 mengubah perspektif: dari "menyalin file" menjadi menyusun strategi backup. Pertanyaan yang harus kalian jawab bukan "bagaimana menyalin", melainkan "kalau server mati hari ini, apa yang ingin kalian pulihkan, dan seberapa jauh ke belakang?"
Di sinilah rsync bersinar: dengan satu pola — hardlink snapshot — kalian bisa mendapat history backup harian yang tampak seperti full backup di setiap hari, tetapi hanya memakan ruang sebesar perubahan yang terjadi.
| Aspek | Full | Incremental | Differential |
|---|---|---|---|
| Ukuran | Besar | Kecil | Sedang |
| Pemulihan | Satu langkah | Rantai delta | Full + satu delta |
| Kompleksitas | Rendah | Tinggi | Sedang |
tar membuat arsip full backup yang mahal ruang dan lambat dibuat ulang. Strategi umum "full tar mingguan + rsync harian" bekerja, tetapi ada kelemahan: arsip tar tidak bisa di-mount langsung, butuh ruang ekstra untuk arsip plus file mentah, dan mengembalikan satu file berarti membongkar arsip.
Hardlink snapshot menawarkan sesuatu yang tidak dimiliki tar: backup harian yang setiap hari terlihat lengkap dan bisa diakses langsung sebagai direktori biasa, tanpa rantai pemulihan.
Inti polanya: setiap hari, salin sumber ke direktori baru, tetapi file yang tidak berubah tidak perlu disalin — cukup buat hardlink ke file yang sama dari snapshot sebelumnya. Hardlink adalah dua nama (atau lebih) yang menunjuk ke inode yang sama; tidak ada duplikasi data di disk.
mkdir -p /backup/backup-1
rsync -a /home/data/ /backup/backup-1/rsync -a --link-dest=../backup-1/ /home/data/ /backup/backup-2/Pada hari ke-2, file yang tidak berubah dari hari ke-1 menjadi hardlink (hampir gratis), file baru disalin penuh, file yang diubah ditulis ulang. backup-2 terlihat seperti full backup — kalian bisa browsing, menyalin, atau menghapus bebas — tetapi hanya memakan ruang untuk data yang benar-benar baru.
Poin penting --link-dest: path-nya relatif terhadap direktori tujuan. Karena tujuan adalah /backup/backup-2, maka ../backup-1 merujuk ke /backup/backup-1. Verifikasi hemat ruangnya:
ls -la /backup/backup-2/
stat -c '%i %h %n' /backup/backup-1/file.txt /backup/backup-2/file.txtstat menampilkan inode (%i) dan jumlah hardlink (%h). Jika dua file memiliki inode sama dan %h = 2, mereka berbagi data yang sama — bukti snapshot hemat ruang bekerja.
Note
--link-dest hanya membuat hardlink untuk file yang tidak berubah. File yang diubah ditulis sebagai file baru — rsync tidak pernah menimpa file di snapshot lama, sehingga setiap snapshot tetap utuh dan konsisten. Inilah yang membuatnya aman untuk history backup.
Kebiasaan yang harus ditanam: backup yang tidak pernah diuji restore sama dengan tidak punya backup. Untuk snapshot, uji cukup dengan menyalin satu snapshot ke direktori sementara dan membandingkan:
rsync -a /backup/backup-2/ /tmp/restore-test/
diff -r /home/data/ /tmp/restore-test/diff -r membandingkan isi. Jika tidak ada perbedaan, snapshot layak dipercaya. Kita lanjutkan kebiasaan verifikasi ini di episode 16 (dry-run & checksum).
| Kelebihan | Kekurangan |
|---|---|
| Setiap snapshot terlihat full, bisa diakses langsung | Butuh filesystem yang mendukung hardlink (ext4, xfs, btrfs, zfs) |
| Hemat ruang besar untuk data yang lambat berubah | Simpul inode dan hardlink tidak bekerja di filesystem FAT/NFS lama |
| Tidak ada rantai restore — hapus satu snapshot aman | History "sebagian": snapshot hanya menangkap perubahan harian |
| Snapshot lama bisa dihapus tanpa merusak yang lain | Butuh skrip rotasi agar tidak menumpuk (episode 9) |
Pada episode 8 ini, kalian telah memahami strategi backup dan pola hardlink snapshot.
Inti yang harus dibawa pulang:
tar bukan solusi optimal untuk backup harian yang bisa diakses langsung.--link-dest=../backup-1/ relatif terhadap direktori tujuan.Di episode 9 selanjutnya, kita otomatiskan semuanya: hardlink snapshot & rotasi backup — skrip rotating daily/weekly/monthly dengan --link-dest, pembersihan snapshot lama, dan best practice --delete + --delete-excluded yang konsisten antar snapshot. Sampai jumpa di episode 9!