Backup data dg DVCS

Sejak bbrp hari yang lalu saya nyari2 cara tuk membackup data (er.. foto sih tepatnya =D) dg mudah di harddisk eksternal. Berhubung saya jg pengen ada fasilitas versioning, cara backup dg rsync tidak bisa diambil mentah2.

Aplikasi selanjutnya yg terpikir adalah Time Machine yg ada di Mac OS X. Namun setelah baca2, Time Machine tidak bisa melakukan backup secara selektif dalam artian hanya direktori yg dipilih saya yang dibackup, akhirnya Time Machine juga tidak jadi dipilih. Time Machine hanya bisa diatur untuk mengecualikan direktori yg dipilih dan bukan sebaliknya. Kalau begini kondisinya, sudah tentu harddisk eksternal saya akan cepat penuh berhubung Time Machine akan melakukan backup sistem secara keseluruhan.

Sempat mikir juga tuk menggunakan DVCS seperti Git. Namun sejak ingat Git dan DVCS lain akan menduplikasi data yg ada di harddisk internal ke dalam repositori lokalnya juga, pemborosan harddisk akan tetap terjadi. Walau Git melakukan kompresi data, tapi untuk data binari seperti foto rasanya tidak akan begitu berpengaruh. Jadi kalau kita punya foto sebanyak 10GB, maka Git akan menyalinnya ke repositori lokal sehingga total data yg kita simpan bisa mencapai 20GB. Saya jadi ragu tuk menggunakan DVCS tuk membackup data foto.

Loh kok jadi kontradiksi dengan judul?

Tidak, karena tulisan ini belum selesai =P Kekhawatiran tadi akhirnya bisa diakalin sehingga tidak akan terjadi duplikasi data pada harddisk yg sama. Harddisk internet dan eksternal masing-masing akan menyimpan 1 salinan data saja, jadi sangat efisien. Bagaimana caranya?

Caranya adalah dengan meletakkan repositori lokal yang seharusnya ada pada harddisk internal ke harddisk eksternal!

Agar repositori lokal tersebut tetap bisa diakses dari harddisk internal, sebuah symlink digunakan untuk menunjuk direktori repositori lokal yg ada di harddisk eksternal tersebut. Teknik menggunakan symlink ini belum tentu bisa digunakan di seluruh DVCS. Saya sudah mencoba dengan Git dan Bzr dan ternyata keduanya bisa melakukan seluruh skenario yg saya inginkan butuhkan, yang akan saya tunjukkan berikut ini.

Katakanlah direktori yg ingin dibackup adalah ~/Foto/ dan harddisk eksternal ada di /eksternal/

  1. Menginisialisasi repositori

    $ cd Foto
    $ git init
    $ mv .git /eksternal/Foto.git
    $ ln -s /eksternal/Foto.git .git
    
  2. Backup data yang ada

    $ git add .
    $ git commit -a -m "backup"
    

    Proses ini bisa saja dilakukan secara terjadwal. Jangan lupa mengecek dulu apakah harddisk external tsb sedang dipasang atau tidak.

  3. Mengembalikan data dari direktori backup.

     $ mkdir FotoBaru
     $ cd FotoBaru
     $ ln -s /eksternal/Foto.git .git
     $ git checkout HEAD -- .
    

    Selain pake cara di atas, bisa jg lgs git clone direktori /eksternal/Foto.git namun direktori baru yg terbentuk akan membengkak 2x lipat karena berisi repositori lokal dan juga salinan lokal.

    Jika menggunakan Bzr, perintah terakhir diganti menjadi bzr revert

  4. Mengembalikan file tertentu dari sebuah revisi tertentu.

     $ git checkout [revisi] -- [nama/file]
    

    jika menggunakan Bzr, maka perintah di atas menjadi seperti berikut.

     $ bzr revert -r[revisi] [nama/file]
    

Kira-kira seperti itu saja =D ada yang mau mencoba dg DVCS lainnya?

Oh ya.. direktori backup yang ada di harddisk eksternal tidak bisa dibuka begitu saja dengan untuk melihat data-data didalamnya karena data tersimpan dalam format repositori DVCS yang digunakan. Untuk melihatnya tentu saja harus dikembalikan dulu ke salinan lokal dg aplikasi DVCS yang digunakan. Cara ini memang sepertinya hanya ditujukan bagi yang ingin menjadikan harddisk eksternal tsb hanya sebagai tempat backup, bukan tempat berbagi data jg dg orang lain. Asumsinya kalau untuk berbagi data, maka isi harddisk dapat dilihat scr langsung tanpa bantuan aplikasi backup yg dipakai.

6 thoughts on “Backup data dg DVCS”

  1. wah rdiff-backup keren =D direktori backup jg bisa dibrowse seperti biasa dan cuma nambahin 1 direktori metadata aja.

    ditambah skrip kecil yg otomatis backup kalo nyolok hdd kayanya komplit =D

  2. kl mo hemat space (dan punya duwit 😉 ), bs make adobe lightroom. poto beneran di eksternal, di lokal cm xml2 yg isinya diff editing history saja. ini kl ngomongon poto yaa.

Leave a Reply