Melindungi data dari kehilangan: mengaktifkan backup otomatis dengan set backup dan backupdir, memahami lock file .swp yang kompatibel dengan vim untuk mencegah dua editor mengedit file yang sama, dan strategi pemulihan setelah proses nano mati paksa

Setelah di episode 13 kalian mengatur shortcut, saatnya membahas topik yang jauh lebih serius: melindungi data. Mengedit file config di server berarti satu kesalahan menyimpan bisa menghancurkan konfigurasi yang berjalan. Episode 7 memberi kita undo; episode ini menambahkan lapisan berikutnya: backup otomatis dan file locking.
Mengapa dua-duanya? Karena mereka menangani dua risiko berbeda: backup melindungi dari kesalahan manusia (menyimpan versi buruk), locking melindungi dari konflik proses (dua editor mengedit file yang sama bersamaan). Sysadmin yang baik memasang keduanya.
Default nano menimpa file asli saat ^O — versi lama hilang selamanya. Dengan set backup, nano menyimpan versi lama terlebih dahulu:
set backup
set backupdir ~/.nano-backups/nano --backup --backupdir=~/.nano-backups file.confSetelah set backup, setiap penyimpanan membuat salinan file lama (dengan akhiran ~) sebelum menulis versi baru. Contoh alur:
file.conf berisi versi A. Kalian edit jadi B, ^O.file.conf → file.conf~ (berisi A).file.conf.Jika B ternyata salah, versi A masih ada di file.conf~.
Tip
Pakai set backupdir untuk mengumpulkan backup di satu tempat yang rapi (misalnya ~/.nano-backups/). Nama file backup menambahkan akhiran ~. Ini juga memudahkan pembersihan berkala dan mencegah backup memenuhi direktori kerja.
Nano membuat lock file dengan nama .nama-file.swp di direktori yang sama saat sebuah file dibuka. Lock file ini kompatibel dengan vim — vim dan nano saling menghormati lock yang dibuat yang lain.
nano ~/nano-lab/nginx.conf &
ls -la ~/nano-lab/.nginx.conf.swpSaat file terkunci dibuka oleh proses lain, nano menampilkan peringatan dan bertanya:
Waiting for lock file on nginx.conf...
[ File is being edited by: PID 1234 ]Lock file mencegah dua orang (atau dua sesi) menulis file yang sama secara bersamaan — akar dari race condition yang menyebabkan config korup.
Warning
Lock file yang tertinggal (misalnya saat proses mati paksa) membuat file tampak "terkunci". Setelah memastikan tidak ada proses nano lain yang membuka file tersebut, hapus lock secara manual: rm ~/nano-lab/.nginx.conf.swp. Episode 18 membahas keamanan lock ini lebih dalam.
Jika nano mati paksa (SSH terputus, terminal ditutup) sebelum ^O, perubahan di buffer hilang — nano tidak punya swap recovery otomatis seperti vim. Strategi pemulihan yang realistis:
set backup, versi terakhir tersimpan di file.conf~ — kalian bisa pulihkan dari sana.set positionlog mengembalikan posisi kursor terakhir sehingga kalian tahu di mana berhenti.^O: simpan sesering mungkin — setiap selesai blok perubahan besar.git atau etckeeper (episode 24).cp ~/nano-lab/nginx.conf~ ~/nano-lab/nginx.confDanger
Mengedit file config penting (seperti /etc/nginx/nginx.conf) tanpa backup dan tanpa kebiasaan ^O yang sering adalah undangan bencana. Di episode 24 kita pasang pola cp file file.bak sebelum edit — gabungan itu (backup nano + backup manual) membuat kerja di server jauh lebih aman.
mkdir -p ~/.nano-backups
nano --backup --backupdir=~/.nano-backups ~/nano-lab/nginx.conf^O untuk menyimpan.ls ~/.nano-backups/ — harus ada nginx.conf~.nano file yang sama — peringatan lock muncul.Pada episode 14 ini, kalian telah memasang jaring pengaman data di nano.
Inti yang harus dibawa pulang:
set backup + set backupdir menyimpan versi lama sebelum menimpa..swp kompatibel vim dan mencegah edit bersamaan.^O adalah penyelamat utama.rm setelah yakin tidak ada proses lain.cp file file.bak) melengkapi proteksi di file kritis.Di episode 15 selanjutnya, kita akan membahas editing file remote (SSH) — membuka nano langsung di server via SSH, memakai sudo nano dengan aman, dan mengonfigurasi nano sebagai editor default lewat EDITOR/VISUAL serta git config core.editor. Skills yang kalian pelajari sejauh ini akhirnya berangkat ke server sungguhan!