Merawat dan melindungi data NetBSD: menjaga kesehatan filesystem dengan fsck, membuat snapshot FFS, serta menyusun strategi backup dengan dump, restore, tar, cpio, dan rsync.

Di episode 10 sebelumnya kita telah membangun seluruh NetBSD dari source — sebuah pencapaian yang mengesankan, tetapi sia-sia jika data di dalamnya hilang. Pada episode ini kita akan melindungi aset paling berharga: data management dan backup — merawat filesystem dengan fsck, membuat snapshot FFS untuk backup konsisten, dan menyusun strategi backup dengan dump/restore, tar, cpio, dan rsync.
fsck adalah alat utama untuk menjaga konsistensi filesystem. Pemeriksaan berkala pada filesystem yang tidak aktif sangat disarankan — misalnya partisi /var saat sistem dim-boot dari media lain, atau saat memeriksa disk data:
fsck -f /dev/rwd0e** /dev/rwd0e
** Last Mounted on /usr
** Phase 1 - Check Blocks and Sizes
...
** Phase 6 - Salvage Cylinder Groups
** 512 files, 1024 used, 419328 freeOutput "clean" berarti filesystem konsisten. Jika ada kesalahan, fsck menanyakan apakah akan memperbaikinya.
Snapshot FFS memberi gambar filesystem yang konsisten pada satu titik waktu — tanpa menghentikan layanan. Cara membuatnya:
fsck -t /dev/rwd0eSnapshot of /dev/rwd0e created at /var/snapshot/rwd0e.0Snapshot bisa di-mount read-only lalu dibackup, sementara filesystem asli tetap melayani pengguna. Ini teknik standar untuk backup "live" yang konsisten.
dump dan restore adalah pasangan backup klasik BSD yang memakai antarmuka filesystem langsung — cocok untuk backup seluruh filesystem. Alur dasarnya:
dump -0au -f /backup/wd0e.dump /dev/rwd0e DUMP: Date of this level 0 dump: Mon Aug 3 12:00:00 2026
DUMP: Dumping /dev/rwd0e to /backup/wd0e.dump
DUMP: Writing 10 Kilobyte records
DUMP: finished in 42 secondsPenjelasan opsi: -0 level 0 (full dump), -a auto-size (rekaman otomatis), -u memperbarui catatan /etc/dumpdates, -f tujuan. Level 1-9 adalah incremental — level 1 hanya membackup perubahan sejak level 0.
Mengembalikan isi dump:
restore -rf /backup/wd0e.dump Verify tape and initialize maps
Request next file-r untuk restore penuh, -f untuk membaca dari file. Untuk melihat isi tanpa mengembalikan:
restore -tf /backup/wd0e.dumpUntuk backup direktori tertentu (bukan seluruh filesystem), tar lebih praktis:
tar -czf /backup/etc.tar.gz /etctar -tzf /backup/etc.tar.gz | headEkstraksi di mesin lain:
tar -xzf /backup/etc.tar.gz -C /mnt/restorecpio adalah alternatif yang kuat untuk alur pipeline — misalnya membackup daftar file dari find:
find /var/log -type f | cpio -o -H newc | gzip > /backup/logs.cpio.gzgzip -dc /backup/logs.cpio.gz | cpio -t | head| Tool | Level | Kelebihan | Kapan Dipakai |
|---|---|---|---|
dump/restore | Filesystem | Konsisten, incremental, restore mudah | Backup seluruh partisi |
tar | File | Sederhana, portabel | Direktori/konten spesifik |
cpio | File | Pipeline-friendly | Backups ber-arsitektur fleksibel |
rsync | File | Sinkronisasi incremental, remote | Mirroring antar mesin |
rsync adalah raja sinkronisasi — membandingkan dan menyalin hanya yang berubah. Install dari pkgsrc:
cd /usr/pkgsrc/net/rsync
make install cleanSinkronisasi lokal (mirror satu direktori ke direktori lain):
rsync -av --delete /etc/ /backup/etc-mirror/sending incremental file list
passwd
rc.conf
rsyncd.conf
...Sinkronisasi remote ke server backup:
rsync -avz --delete /var/www/ backup@server:/backups/www/Opsi kunci: -a archive (rekursif + atribut), -v verbose, -z kompresi, --delete hapus file yang hilang di sumber. --delete sangat berguna untuk mirror yang presisi — tetapi pastikan arahnya benar!
Warning
Uji rsync dengan opsi --dry-run terlebih dahulu untuk melihat apa yang akan disalin tanpa benar-benar menyalin. Satu arah --delete yang salah bisa menghapus data target.
| Komponen | Arti |
|---|---|
| 3 salinan data | 1 produksi + 2 backup |
| 2 media berbeda | Misal disk lokal + disk eksternal/remote |
| 1 di luar lokasi | Salinan di tempat berbeda dari mesin produksi |
# Backup level 0 (full) tiap Minggu pukul 02:00
0 2 * * 0 root dump -0au -f /backup/full.dump /dev/rwd0e
# Backup level 5 (incremental) tiap hari pukul 02:00
0 2 * * 1-6 root dump -5au -f /backup/inc.dump /dev/rwd0eDaftarkan jadwal di crontab root dengan crontab -e. Kombinasi full + incremental memberi keseimbangan antara kecepatan dan cakupan pemulihan.
Backup yang tidak pernah di-restore adalah tebakan, bukan backup. Jadwalkan uji restore berkala — misalnya di VM — untuk memastikan proses pemulihan benar-benar berfungsi saat dibutuhkan.
Pada episode 11 ini, kalian telah melindungi data NetBSD: merawat filesystem dengan fsck, membuat snapshot FFS untuk backup konsisten, serta membangun strategi backup dengan dump/restore, tar, cpio, dan rsync — plus jadwal otomatis lewat crontab.
Inti yang harus dibawa pulang:
fsck; snapshot dengan fsck -t untuk backup konsisten saat sistem hidup.dump/restore untuk backup tingkat filesystem; tar/cpio untuk tingkat file.rsync untuk sinkronisasi incremental — uji dengan --dry-run dulu.Di episode 12 selanjutnya kita akan membangun tembok pertahanan: firewall dengan npf dan ipfilter — menulis ruleset npf.conf, mengaktifkan NAT, mengelola dengan npfctl, serta membandingkan npf dengan ipfilter dan pf. Sampai jumpa di episode 12!