GNU/Linux >> Belajar Linux >  >> Linux

Cara Mencadangkan Dan Mengembalikan File Menggunakan BorgBackup Di Linux

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.


Linux
  1. MySQL:Cara Backup (Dump) dan Restore Database Menggunakan mysqldump

  2. Cara Mengarsipkan dan Mengompresi File di Linux

  3. Cara Mencadangkan dan Memulihkan Basis Data di PostgreSQL

  1. Cara Menghapus Direktori dan File Menggunakan Linux

  2. Cara Mencadangkan Dan Mengembalikan Pengaturan Aplikasi Menggunakan Mackup Pada Sistem Linux yang Baru Diinstal

  3. Cara Mencadangkan dan Memulihkan Repositori SVN di Linux

  1. Cara Menghapus File dan Direktori Menggunakan Baris Perintah Linux

  2. Cara Mengganti Nama File dan Direktori di Linux

  3. Cara Zip File dan Direktori di Linux