Di Linux, ada beberapa alat pencadangan yang menyediakan fungsionalitas untuk pencadangan tingkat sistem serta pencadangan data pengguna. Dalam artikel komprehensif ini, kita akan melihat apa itu BorgBackup dan cara mencadangkan dan memulihkan file menggunakan Borg di Linux dan sistem mirip Unix.
1. Pendahuluan
Ketika saya berurusan dengan banyak data dalam pekerjaan saya, pertanyaan jelas yang muncul di benak saya pada awalnya adalah:1. Bagaimana jika saya kehilangan data saya? 2. Seberapa baik data saya diamankan?
Skenario yang sama akan diterapkan pada mesin pribadi. Anda harus selalu mencadangkan data Anda tergantung pada kepentingannya dan melindungi data Anda dari akses ilegal.
Baik itu data pribadi atau data resmi Anda, Anda harus selalu merencanakan strategi pencadangan yang baik dan menggunakan alat pencadangan yang andal yang akan membantu Anda mencadangkan data penting Anda. Salah satu aplikasi backup opensource yang paling direkomendasikan dan banyak digunakan adalah "Borg" .
2. Apa itu Borg?
BorgBackup, singkatnya borg, adalah alat pencadangan yang dibuat untuk menyediakan cara yang efisien untuk mencadangkan data Anda menggunakan teknik penggandaan.
Beberapa fitur unik borg tercantum di bawah ini.
- Deduplikasi - Teknik deduplikasi hanya menyimpan salinan tambahan dari data yang sempurna untuk mengambil cadangan harian.
- Cross-platform - Borg dapat diinstal dan digunakan di Linux, Mac OS X, dan FreeBSD.
- Aman - Mendukung enkripsi data menggunakan AES enkripsi (256-bit), untuk memverifikasi keaslian HMAC-SHA256 digunakan.
- Kompresi - Data dapat dikompresi menggunakan metode kompresi berikut:
- LZ4 -> Super Cepat, Kompresi Rendah.
- ZSTD -> Kecepatan Tinggi dan Kompresi Rendah ke Kecepatan Rendah dan Kompresi Tinggi.
- ZLIB -> Kecepatan Sedang, Kompresi Sedang.
- LZMA -> Kecepatan Rendah, Kompresi Tinggi.
- Pencadangan jarak jauh - Data dapat dicadangkan ke mesin jarak jauh melalui protokol SSH.
3. Instal Borg di Linux
Borg tersedia di repositori default sebagian besar distribusi Linux. Jadi, itu dapat diinstal menggunakan manajer paket khusus distribusi.
Untuk Instal borg di Alpine Linux, jalankan perintah berikut:
$ sudo apk add borgbackup
Untuk Install borg di Arch Linux dan variannya seperti EndeavourOS dan Manjaro Linux, jalankan perintah berikut:
$ sudo pacman -S borg
Instal borg di distribusi berbasis Debian/Ubuntu:
$ sudo apt install borgbackup -y
Instal borg di Fedora, RHEL, CentOS, AlmaLinux dan Rocky Linux:
$ sudo dnf install borgbackup -y
Instal Borg di openSUSE:
$ sudo zypper install borgbackup -y
Karena borg ditulis dalam Python , Anda dapat menggunakan pengelola paket python PiP untuk menginstal borg. Bergantung pada versi pip yang diinstal, Anda dapat menjalankan salah satu dari perintah berikut.
$ pip install borgbackup
Atau,
$ pip3 install borgbackup
Setelah terinstal, Anda dapat memverifikasi instalasi Borg dengan menjalankan versi dan perintah bantuan:
$ borg --version
$ borg --help
4. Ambil cadangan pertama Anda menggunakan Borg
Anda harus memahami dua istilah penting sebelum mengambil cadangan pertama Anda.
- Arsip - Salinan cadangan (Snapshot) data Anda akan disebut sebagai arsip.
- Repositori - Direktori di sistem file lokal atau jarak jauh tempat arsip disimpan.
Pertama, inisialisasi repositori (direktori) tempat arsip akan disimpan.
Saya memiliki daftar file dalam direktori bernama "source" dan membuat direktori baru bernama "cadangan" yang akan bertindak sebagai repositori saya untuk menyimpan arsip.
5. Inisialisasi repositori
Jalankan borg init
perintah untuk menginisialisasi direktori cadangan. Direktori cadangan dapat berada di mesin lokal atau mesin jarak jauh. Dalam kasus saya, saya menginisialisasi direktori (yaitu cadangan ) yang sudah saya buat.
$ borg init --encryption=none /home/karthick/borg/backup
$ borg init --encryption=repokey /home/karthick/borg/backup
$ borg init --encryption=keyfile /home/karthick/borg/backup
Saat Anda menginisialisasi repositori, Anda dapat memilih jenis enkripsi . Saat Anda menggunakan jenis enkripsi sebagai "Tidak Ada" , tidak ada enkripsi yang akan diterapkan. Saat Anda menggunakan "repokey" dan "keyfile" sebagai jenis enkripsi, ia menggunakan AES-CTR-256 untuk enkripsi.
Pilih salah satu jenis enkripsi dan jalankan init
memerintah. Dalam kasus saya, saya memilih jenis enkripsi sebagai none untuk tujuan demonstrasi.
6. Cadangkan file menggunakan Borg
6.1. Buat cadangan pertama
Setelah repositori diinisialisasi, Anda dapat membuat arsip cadangan dengan menjalankan perintah berikut:
$ borg create --stats --progress /home/karthick/borg/backup::25-11-2021 /home/karthick/borg/source/
Di sini, saya memberikan nama arsip dalam format tanggal "25-11-2021" simulasi backup harian. Tanpa --stats
dan --progress
flag, output dari perintah create akan diam.
6.2. Menampilkan file saat membuat cadangan
Anda juga dapat menggabungkan --list
dan -v
flag untuk menampilkan daftar file dalam arsip saat menjalankan borg create
perintah.
$ borg create --list -v /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/
6.3. Buat cadangan terkompresi
Secara default, borg menggunakan lz4 algoritma kompresi. Algoritma kompresi lz4 sangat cepat dan memiliki rasio kompresi yang rendah. Jika Anda ingin menggunakan algoritma kompresi yang berbeda, Anda dapat menggunakan --compression
tandai dan berikan jenisnya bersama dengan tingkat kompresi.
Misalnya, jika saya ingin menggunakan zstd algoritma, maka perintah saya adalah sebagai berikut.
$ borg create --compression zstd,1 /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/
Anda dapat melihat berbagai algoritme kompresi dan levelnya dari dokumentasi resmi Borg .
6.4. Dapatkan informasi arsip
Anda dapat menggunakan info
perintah untuk mendapatkan informasi tentang arsip tertentu.
$ borg info /home/karthick/borg/backup/::25-11-2021
7. Membuat daftar cadangan
Menggunakan borg list
perintah, Anda dapat menanyakan repositori Anda untuk menemukan daftar arsip dan file apa yang ada di dalam arsip.
Untuk mendapatkan daftar arsip saja, jalankan perintah berikut.
$ borg list /home/karthick/borg/backup
Contoh keluaran:
25-11-2021 Thu, 2021-11-25 13:16:53 [653d952301fc70ab9f2f74794361359144e05f5534e668ef4a4957d2c7f67937]
26-11-2021 Thu, 2021-11-25 13:19:51 [473bbe30fbe8597b63910310d567e69b501b2fb7127f04a78da76ab59d90114f]
27-11-2021 Thu, 2021-11-25 13:20:01 [0e6813f1a05246d43d196de9d28034d0397b4ae50cd20ee50163e347efee3e2a]
Anda juga dapat menggunakan --json
flag yang akan memberikan informasi lebih lanjut tentang repositori dan daftar arsip di json formatnya.
$ borg list --json /home/karthick/borg/backup
7.1. Mencantumkan file dalam arsip
Untuk mendapatkan daftar file di dalam arsip, jalankan perintah berikut. Di sini saya mencantumkan file dari arsip "25-11-2021" .
$ borg list /home/karthick/borg/backup::25-11-2021
Contoh keluaran:
drwxrwxr-x karthick karthick 0 Thu, 2021-11-25 12:48:58 home/karthick/borg/source
-rw-r--r-- karthick karthick 807 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/project_profile.txt
-rw------- karthick karthick 2301 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/hist.txt
-rw-r--r-- karthick karthick 220 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/external.txt
-rw-r--r-- karthick karthick 3895 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/config.txt
Anda juga dapat menggunakan --json-lines
tandai untuk mencantumkan konten arsip di JSON formatnya.
7.2. Kecualikan file dan direktori dari cadangan
Anda dapat mengecualikan file dan direktori menggunakan -e
atau --exclude
bendera.
$ borg list /home/karthick/borg/backup::25-11-2021 --exclude "hist"
8. Temukan perbedaan antara arsip
Anda dapat menggunakan diff
perintah untuk membandingkan dua arsip.
Saya membuat file baru bernama datafile.txt
di bawah source
direktori. Saya juga telah membuat satu arsip lagi bernama 28-11-2021 .
Sekarang saya bisa membandingkan arsip baru dan arsip lama seperti di bawah ini:
$ borg diff /home/karthick/borg/backup/::27-11-2021 28-11-2021 added 2.89 kB home/karthick/borg/source/datafile.txt
9. Ganti nama arsip
Setelah arsip dibuat dan jika Anda ingin mengganti namanya, Anda dapat melakukannya menggunakan borg rename
memerintah.
Katakanlah jika saya ingin mengganti nama arsip "27-11-2021" ke "29-11-2021" , saya dapat melakukannya dengan menjalankan perintah berikut.
$ borg rename /home/karthick/borg/backup/::27-11-2021 29-11-2021
10. Pulihkan file menggunakan borg (Ekstrak data dari arsip)
Fokus utama mencadangkan data adalah mengembalikannya kapan pun diperlukan. Jadi Anda dapat menggunakan borg extract
perintah untuk mengambil data dari arsip. Saat Anda menjalankan extract
perintah, itu akan mengekstrak data ke direktori kerja saat ini dari tempat Anda menjalankan perintah ekstrak.
Jalankan perintah berikut untuk mengekstrak arsip ke direktori kerja saat ini. Dengan -v
dan --list
bendera ditambahkan, itu akan menampilkan daftar file yang diekstrak.
$ borg extract -v --list backup/::25-11-2021
Anda juga dapat menggunakan --dry-run
flag yang hanya akan menampilkan apa yang akan diekstraksi alih-alih mengekstraknya.
$ borg extract --dry-run -v --list backup/::25-11-2021
Anda dapat mengekstrak direktori tertentu dari arsip dengan meneruskan nama direktori. Karena saya hanya memiliki satu direktori dalam arsip saya, direktori itu akan mengambilnya.
$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/
10.1. Kecualikan file dari pemulihan
Anda juga dapat menambahkan --exclude
untuk menghilangkan file saat mengekstrak direktori. Di sini saya mengekstrak semua file kecuali file apa pun dengan hist .
$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/ --exclude "hist"
11. Pasang dan lepas repositori dan arsip
Anda dapat memasang repositori atau arsip tertentu sebagai sistem file sekering. Anda kemudian dapat memulihkan file menggunakan arsip yang terpasang.
Untuk memasang seluruh repositori, jalankan perintah berikut:
$ mkdir /tmp/borg/
$ borg mount /home/karthick/borg/backup/ /tmp/borg/
$ ls -l /tmp/borg/
Contoh keluaran:
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 25-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 26-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 27-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 28-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:32 29-11-2021
Anda dapat melihat dari output di atas semua arsip saya dipasang sebagai direktori dan sekarang saya dapat memulihkannya dengan menyalin file.
Untuk memasang arsip tertentu, cukup tambahkan nama arsip bersama dengan repositori.
$ borg mount /home/karthick/borg/backup/::25-11-2021 /tmp/borg/
Untuk melepas mount repositori atau arsip, gunakan borg umount
perintah.
$ borg umount /tmp/borg
$ ls -l /tmp/borg
12. Pangkas arsip
borg prune
perintah ini akan sangat berguna saat Anda mengotomatiskan pencadangan dan hanya ingin menyimpan salinan tertentu dan membersihkan salinan yang tersisa.
Opsi dalam tabel di atas menentukan berapa banyak salinan arsip yang akan disimpan di repositori Anda. Misalnya, jika saya hanya ingin menyimpan 2 salinan dari backup mingguan saya, maka perintah saya adalah sebagai berikut.
$ borg prune -v --list --keep-weekly=2 /home/karthick/borg/backup/
Anda juga dapat menerapkan kondisi tersebut di atas untuk arsip tertentu saja. Misalnya, katakanlah saya memiliki 10 arsip di repositori saya dan saya ingin menerapkan aturan retensi untuk arsip7 maka saya dapat menggunakan --prefix
tandai untuk mengatur kondisi.
$ borg prune -v --list --keep-weekly=2 --prefix='{archive name}' /home/karthick/borg/backup/
Sebelum menjalankan prune
perintah, lakukan dry run dengan menggunakan --dry-run
bendera.
13. Hapus repositori dan arsip
Anda dapat menghapus arsip atau seluruh repositori menggunakan borg delete
perintah.
Untuk menghapus satu arsip, Anda harus memberikan nama arsip.
$ borg delete /home/karthick/borg/backup/::26-11-2021
Untuk menghapus seluruh arsip, cukup sediakan jalur repositori. Saat menghapus seluruh direktori, Anda akan diminta untuk memberikan konfirmasi.
$ borg delete /home/karthick/borg/backup/
14. Ubah frasa sandi kunci
Sampai sekarang saya telah menunjukkan contoh saya tanpa menerapkan enkripsi apa pun ke repositori. Seperti yang diramalkan di bagian awal, Anda dapat menginisialisasi direktori dengan enkripsi diaktifkan dan jika repokey
atau keyfile
digunakan, Anda akan diminta untuk menyetel frasa sandi secara opsional.
$ borg init --encryption=repokey /home/karthick/borg/bkup/
Mulai sekarang, setiap kali saya mencoba melakukan operasi apa pun pada repositori ini, saya harus memberikan frasa sandi setiap saat. Lihatlah gambar di bawah ini, saya mencoba membuat daftar repositori dan saya harus memberikan kata sandi untuk itu.
Sekarang katakanlah Anda ingin mengubah frasa sandi, maka Anda dapat melakukannya dengan menggunakan borg change-passphrase
perintah.
$ borg key change-passphrase -v /home/karthick/borg/bkup
Anda juga dapat menyetel frasa sandi menggunakan variabel lingkungan.
$ BORG_PASSPHRASE="old password" BORG_NEW_PASSPHRASE="new password" borg key change-passphrase /home/karthick/borg/bkup
15. Ekspor dan impor kunci
Anda dapat mencadangkan kunci repositori dengan mengekspornya dan kemudian mengimpornya jika diperlukan.
Untuk mengekspor kunci, jalankan perintah berikut:
$ borg key export bkup/ ./key
$ cat ./key
Untuk mengimpor kunci ke repositori yang sama, jalankan perintah berikut:
$ borg key import bkup/ ./key
16. Bekerja dengan repositori jarak jauh
Apa pun yang kami lihat sampai sekarang adalah mencadangkan data Anda di mesin yang sama. Borg juga mendukung repositori jarak jauh di mana Anda dapat membuat cadangan data Anda di mesin jarak jauh mana pun. Host jarak jauh harus dapat diakses melalui SSH.
Sintaks:
$ borg init [email protected]:/path/to/repo
Contoh:
$ borg init [email protected]:/home/karthick/borg/bkup
Anda dapat melakukan semua jenis operasi serupa yang dapat Anda lakukan dengan pencadangan lokal. Misalnya, untuk memulihkan cadangan Anda dapat menggunakan extract
dan Anda juga dapat menggunakan mount
perintah untuk memasang repositori jarak jauh.
Di sini saat menunjuk ke direktori jarak jauh, Anda harus mengarahkan protokol ssh sebagai "ssh://[email protected]:port/path/to/repo
".
$ borg mount ssh://[email protected]:2222/home/karthick/borg/bkup /tmp/borg
$ borg extract ssh://[email protected]:2222/home/karthick/borg/bkup
17. Klien desktop GUI Borg
Karena BorgBackup adalah murni alat baris perintah, hampir tidak mungkin untuk mengingat semua perintah. Beberapa dari Anda mungkin lebih suka aplikasi grafis bagus yang memungkinkan Anda untuk membuat cadangan data melalui antarmuka grafis. Jangan khawatir!
Vorta adalah klien desktop GUI untuk BorgBackup. Menggunakan Vorta, Anda dapat dengan mudah mengintegrasikan aplikasi Borg ke lingkungan desktop favorit Anda. Tidak perlu menghafal perintah. Semuanya dapat dilakukan melalui antarmuka grafis sederhana!
Untuk detail lebih lanjut tentang cara menginstal dan menggunakan Vorta, lihat panduan berikut.
- Vorta – Tampilan Grafis Untuk BorgBackup
18. Kesimpulan
Pada artikel ini, kita telah melihat cara menggunakan borg untuk mencadangkan dan memulihkan data Anda di Linux. Borg memiliki begitu banyak fitur yang dapat Anda pahami dengan menguji alat ini. Alternatif yang baik untuk borg adalah Timeshift untuk mengambil cadangan tingkat sistem dan rsync untuk mengambil file dan direktori pengguna.