.

Sunday, November 9, 2014

Backup data menggunakan duplicity

Ada banyak software untuk kegiatan backup dan sinkronisasi di Linux, salah satunya adalah duplicity, saya mulai tertarik menggunakan duplicity karena fiturnya menarik, selain cepat dalam membackup juga ada fitur keep n backup yang terakhir, fitur ini bagus karena kita bisa mengefisienkan backup incremental pada backup, misalnya hanya akan menyimpan file maksimal 10 file terakhir saja, tapi saya tidak menerangkan fitur ini, hanya akan memperlihatkan sedikit contoh penggunaan duplicity untuk backup lokal, walaupun duplicity bisa juga digunakan untuk backup remote via ftp/ssh.

Kita langsung saja, berikut masing-masing perintah dasar yang saya gunakan untuk backup

Backup full pertama kali, perintah yang dijalankan adalah:

duplicity [option]

Berikut contohnya, saya mengggunakan opsi tanpa enkripsi pada file backup yang dibuat, dalam contoh ini saya membackup folder /home/iip/.wine/drive_c/ifls5-a/* ke folder backup di file:///home/iip/.backupdata/ifls5-a, perhatikan bahwa proses backup untuk data sebesar 53.4MB butuh waktu 2.24 detik, dengan ukuran file backup sekitar 8.39MB.



Berikut adalah hasil keluaran perintah full backup yang pertama, walaupun file ini bisa dibuka oleh program manajemen kompresi yang umum, tapi sebaiknya tidak dilakukan, karena khawatir akan mengganggu struktur manajemen internal dari sistem duplicity yang sudah di disain sedemikian rupa oleh developernya, jadi jika ingin memanipulasi data backup sebaiknya juga tetap menggunakan duplicity.




Selanjutnya saya mencoba menambahkan file baru pada source backup, sebesar 6.27MB, karena sistem backup yang akan saya buat adalah sistem incremental (hanya membackup yang baru/update saja), maka perintah yang saya jalankan tidak lagi full backup tapi menggunakan opsi incremental, seperti berikut:

duplicity incremental --no-encryption /home/iip/.wine/drive_c/ifls5-a file:///home/iip/.backupdata/ifls5-a



Proses backup membutuhkan waktu 0.98 detik dengan penambahan file backup sebesar 692KB. Berikut adalah output pada file backup yang sudah bertambah dengan backup yang terakhir:


Ketika backup berubah dan dilakukan backup incremental, backup terus melakukan update hanya untuk file yang berubah dan update saja, ini bagus untuk backup yang membutuhkan versi, terutama folder yang dipakai bersama-sama, atau folder pribadi yang kadang kita butuhkan juga versi dari setiap file yang kita update/baru/terhapus.




Selanjutnya adalah bagaimana kita bisa melihat status dari data yang sudah dibackup, untuk melakukan ini kita bisa menggunakan opsi collection-status  dimana kita bisa melihat tanggal dan jam dari backup yang pernah dijalankan, Berikut perintahnya:

duplicity collection-status file:///home/iip/.backupdata/ifls5-a


Dari screenshot diatas kita bisa melihat bahwa status backup adalah full backup pertama kali dilakukan pada tanggal 25 September 2014 jam 12:56:41, backup incremental selanjutnya dilakukan pada jam 12:58:36 dan 13:00:33.
Selanjutnya adalah bagaimana melihat file-file yang sudah terbackup dengan memberikan opsi "list-current-files" pada perintah duplicity, yaitu:

duplicity list-current-files file:///home/iip/.backupdata/ifls5-a

Kita juga bisa melakukan piping pada output aplikasi, misalnya memberikan pipe perintah more untuk memberhentikan setiap halaman.



Atau bisa juga dengan memberikan perintah grep untuk memfilter keluaran tertentu pada output aplikasi duplicity, seperti berikut melakukan filter menampilkan hanya file yang mengandung kata tforms



Kegiatan selanjutnya adalah melakukan ekstraksi pada file backup, untuk melakukan ekstraksi atau restore data dapat dilakukan dengan memberikan opsi restore pada perintah duplicity, seperti berikut:

duplicity [restore] [options] source_url target_dir

Contoh implementasi pada data backup yang sudah kita lakukan adalah sebagai berikut:

duplicity restore f:///home/iip/.backupdata/ifls5-a testout

testout pada contoh ini adalah folder dimana data backup akan di ekstrak atau direstore, perhatikan bahwa duplicity meminta passphrase walau sebenarnya kita tidak membuat backup dengan password, anda bisa mengisi bebas, atau bisa dengan perintah seperti pada baris kedua dengan mengisi environment variable dengan nilai sembarang:

PASSPHRASE=blablabla duplicity restore .....




Berikut adalah output hasil restore pada perintah restore ke folder testout, secara default data backup yang direstore adalah sesuai status backup yang terakhir.


Saya coba lagi restore pada folder yang lain yaitu pada folder testout2


Output file yang diekstrak sama, hanya kali ini saya ekstrak ke folder yang berbeda.


Duplicity juga dapat mengekstrak data backup hanya data tertentu saja, contohnya saya hanya mau mengekstrak hanya folder tforms saja, caranya adalah dengan memberikan opsi -r ,berikut ini perintahny:

duplicity restore -r tforms/111 file:///home/iip/.backupdata/ifls5-a testout3

Berikut adalah hasil keluaran dari perintah diatas, hanya isi dari folder tforms/111 saja yang terekstrak





Berikutnya saya ingin mencoba mengekstrak dari dua waktu yang berbeda, dengan opsi --time, pada test ini saya mencoba membuat file baru dengan nama TESTIIP dengan jam pembuatan 02:23:10, Pertama saya akan mengekstrak backup pada jam 13:00:33 dengan perintah:

duplicity restore --time "2014-09-25T13:00:33" file:///home/iip/.backupdata/ifls5-a testout7



Lalu saya mengekstrak backup pada jam 14:23:34 (ada file TESTIIP sebelum backup ini pada detik 23:10), perintahnya masih sama, hanya beda jam dan output folder saya bedakan ke testout8 agar bisa terlihat perbedaannya:

duplicity restore --time "2014-09-25T14:23:34" file:///home/iip/.backupdata/ifls5-a testout8

Perhatikan bahwa file TESTIIP ada di folder testout8 tapi tidak ada di folder testout7, walau demikian file backup tetap efisien karena hanya menyimpan perbedaannya saja untuk setiap sesi backup.




Test berikutnya adalah saya mencoba menghapus folder 111 didalam direktory tforms dan membackup ulang dengan backup incremental seperti sebelumnya:

duplicity incremental --no-encryption /home/iip/.wine/drive_c/ifls5-a file:///home/iip/.backupdata/ifls5-a

Kita lihat kembali koleksi backup kita dengan perintah:

duplicity collection-status file:///home/iip/.backupdata/ifls5-a

Perhatikan ada sesi backup baru pada jam 14:54:12



Sekarang kita coba ekstrak file backup terakhir dimana sebelum saya lakukan backup, folder 111 sudah saya hapus terlebih dahulu, perintahnya sama seperti sebelumnya, dengan opsi --time, seperti berikut:

duplicity restore --time "2014-09-25T14:54:12" file:///home/iip/.backupdata/ifls5-a testout9

Berikut adalah hasil backup antara testout8 dan testout9 yang sudah dihapus folder /tforms/111




Demikian eksperimen sederhana menggunakan duplicity sebagai tools, semoga bermanfaat dan bisa membantu mengurangi resiko kehilangan data di komputer anda, terutama bagi pengguna Linux.

Selamat berlinux dan salam olah raga!

-iip-



No comments:

Setting DeepCool AK400 Digital CPU fan di Manjaro Linux

  Baru rakit PC dan pakai AK400 Digital untuk CPU fannya, setelah install linux ternyata tulisan digitalnya gak tampil, cari-cari di interne...