GNU/Linux >> Belajar Linux >  >> Linux

Cara Backup Dan Restore Data Menggunakan Restic Di Linux

Panduan ini menjelaskan apa itu Restic, cara menginstal Restic di berbagai distribusi Linux, dan terakhir cara membuat backup dan restore data menggunakan Restic di sistem operasi Linux.

Restic - Aplikasi pencadangan yang cepat, aman, dan efisien

Istirahat adalah program pencadangan yang cepat, sumber terbuka, aman, dan lintas platform. Ini memungkinkan penyimpanan beberapa revisi file dan direktori dalam repositori terenkripsi yang disimpan di backend yang berbeda.

Restic menggunakan kriptografi untuk menjamin kerahasiaan dan integritas data Anda. Ini mengenkripsi data dengan AES-256 dalam mode penghitung dan autentikasi menggunakan Poly1305-AES kode otentikasi pesan kriptografi.

Mencadangkan dan memulihkan data dengan Restic mudah dan sangat cepat! Itu hanya mentransfer file yang dimodifikasi (cadangan tambahan) seperti Rsync .

Menggunakan Restic, kita dapat dengan mudah membuat cadangan file dan direktori di disk lokal atau sistem jarak jauh, atau penyimpanan cloud. Restic mendukung backend penyimpanan cloud populer seperti AWS, Azure, BackBlaze, Google Cloud, OpenStack, dan beberapa lainnya.

Restic ditulis menggunakan Go bahasa pemrograman dan kode sumbernya tersedia secara gratis di GitHub. Ini adalah aplikasi pencadangan lintas platform. Mendukung GNU/Linux, macOS, FreeBSD, openBSD dan Microsoft Windows.

Instal Restic Di Linux

Restic dikemas untuk sistem operasi Linux yang populer.

Instal Restic di Alpine Linux:

$ sudo apk add restic

Instal Restic di Arch Linux, EndeavourOS, Manjaro Linux:

Restic tersedia di repositori default Arch Linux. Pastikan [Community] repositori diaktifkan dan instal Restic di Arch Linux dan variannya seperti EndeavourOS, Manjaro Linux menggunakan Pacman seperti yang ditunjukkan di bawah ini.

$ sudo pacman -S restic

Instal Restic dari AUR:

Restic juga tersedia dalam AUR. Jadi, Anda dapat menginstalnya menggunakan pembantu AUR apa pun, seperti Paru atau Yay , dalam sistem berbasis Arch.

$ paru -S restic-git

Atau,

$ yay -S restic-git

Instal Restic di Debian, Ubuntu, Linux Mint, Pop_OS!:

$ sudo apt-get install restic

Instal Restic di Fedora:

$ sudo dnf install restic

Instal Restic di RHEL, CentOS, AlmaLinux dan Rocky Linux:

$ sudo dnf copr enable copart/restic
$ sudo dnf install restic

Instal Restic di Solus:

$ sudo eopkg install restic

Instal Restic di Nix OS:

$ nix-env --install restic

Instal Restic di openSUSE:

$ sudo zypper install restic

Instal restic menggunakan Linuxbrew:

$ brew install restic

Instal Restic dari sumber:

Untuk sistem operasi lain, Anda dapat mengkompilasi dan menginstalnya seperti di bawah ini. Pertama, pastikan Anda telah menginstal Go bahasa di sistem Anda.

  • Cara Menginstal Bahasa Go Di Linux

Setelah Go diinstal, git clone restic github respository:

$ git clone https://github.com/restic/restic

Perintah ini akan mengkloning semua konten repositori restic di direktori kerja saat ini.

Cd ke direktori restic:

$ cd restic

Dan, instal Restic seperti di bawah ini:

$ go run build.go

Periksa versi Restic yang diinstal:

$ restic version
restic 0.12.0 compiled with go1.14.12 on linux/amd64

Perbarui Restic

Jika Anda telah menginstal Restic dari repositori resmi, itu mungkin versi lama.

Untuk memperbarui Restic ke versi terbaru, jalankan:

$ sudo restic self-update

Sekarang periksa versinya dengan perintah:

$ restic version
restic 0.12.1 compiled with go1.16.6 on linux/amd64

Backup dan restore data menggunakan Restic di Linux

Restic mendukung backend berikut untuk menyimpan cadangan:

  1. Direktori lokal,
  2. server sftp (melalui SSH),
  3. Server HTTP REST,
  4. AWS S3,
  5. OpenStack Swift,
  6. BackBlaze B2,
  7. Penyimpanan Microsoft Azure Blob,
  8. Penyimpanan Google Cloud,
  9. Dan banyak layanan lainnya melalui rclone .

Sekarang, mari kita lihat cara mencadangkan dan memulihkan data di direktori lokal.

Buat repositori lokal baru

Pertama, mari kita buat repositori untuk menyimpan cadangan. Misalnya, saya akan membuat repositori bernama mybackup di direktori $HOME saya.

$ restic init --repo ~/mybackup

Masukkan kata sandi untuk repositori dua kali. Anda harus mengingat kata sandi untuk mengakses repositori ini nanti. Jika tidak, Anda akan kehilangan data yang disimpan dalam repositori secara permanen. Anda telah diperingatkan!

enter password for new repository: 
enter password again: 
created restic repository c1c5bcfdb8 at /home/sk/mybackup

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

Seperti yang Anda lihat pada output di atas, repositori restic lokal dengan ID c1c5bcfdb8 dibuat di /home/sk/mybackup lokasi.

Sekarang saatnya untuk mencadangkan data Anda ke repositori yang baru dibuat.

Backup data ke direktori lokal menggunakan Restic

Saya akan mencadangkan seluruh ~/mydata direktori (termasuk direktori itu sendiri) ke repositori ~/mybackup menggunakan perintah:

$ restic -r ~/mybackup backup ~/mydata

Masukkan kata sandi repositori Anda:

Contoh keluaran:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
no parent snapshot found, will read all files

Files:           7 new,     0 changed,     0 unmodified
Dirs:            4 new,     0 changed,     0 unmodified
Added to the repo: 21.919 MiB

processed 7 files, 21.913 MiB in 0:00
snapshot 7457d80e saved

Seperti yang Anda lihat, restic membuat cadangan dari direktori yang diberikan yaitu mydata . Selain itu, saya membuat cuplikan cadangan saat ini dengan nama unik 7457d80e .

Mari kita uraikan perintah di atas dan lihat apa yang dilakukan setiap opsi.

  • restic :Perintah istirahat
  • -r :Menunjukkan repositori
  • ~/mybackup :Nama repositori
  • backup - Sub-perintah restic untuk mem-backup file/folder
  • ~/mydata - Direktori yang akan dicadangkan.

Tambahkan lebih banyak file/folder di direktori cadangan. Misalnya, saya menambahkan file baru bernama vi editor.pdf di ~/mydata direktori. Sekarang, jalankan perintah restic yang sama lagi:

$ restic -r ~/mybackup backup ~/mydata
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
using parent snapshot 7457d80e

Files:           1 new,     0 changed,     7 unmodified
Dirs:            0 new,     3 changed,     1 unmodified
Added to the repo: 50.123 KiB

processed 8 files, 21.957 MiB in 0:00
snapshot 963d4de3 saved

Restic akan terus membuat snapshot baru dengan nama unik setiap kali kita menjalankannya.

Karena Restic melakukan pencadangan tambahan, pencadangan berikutnya akan lebih cepat daripada pencadangan sebelumnya. Kami dapat terus menambahkan data di folder cadangan dan menjalankan pencadangan untuk membuat banyak snapshot.

Tidak hanya direktori, Restic juga memungkinkan kita untuk mem-backup file individual.

$ restic -r ~/mybackup backup ~/mydata/vi\ editor.pdf 

Contoh keluaran:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
no parent snapshot found, will read all files

Files:           1 new,     0 changed,     0 unmodified
Dirs:            3 new,     0 changed,     0 unmodified
Added to the repo: 47.129 KiB

processed 1 files, 45.139 KiB in 0:00
snapshot 59439d78 saved

Seperti yang Anda lihat, snapshot baru bernama 59439d78 dibuat di repositori.

Mencantumkan cuplikan

Untuk membuat daftar snapshot yang tersedia di repositori lokal, jalankan:

$ restic -r ~/mybackup snapshots

Contoh keluaran:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
963d4de3  2021-08-13 12:57:55  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
2 snapshots

Seperti yang Anda lihat, saya memiliki 2 snapshot, yaitu 7457d80e dan 963d4de3 .

Periksa perbedaan antara dua snapshot

Untuk memeriksa perbedaan antara dua snapshot, kita dapat menggunakan diff pilihan seperti di bawah ini:

$ restic -r ~/mybackup diff 7457d80e 963d4de3

Perintah ini membandingkan dua snapshot yang diberikan dan mencantumkan perbedaannya, yaitu file mana yang ditambahkan, berapa banyak file dan direktori yang dihapus dari repositori.

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
comparing snapshot 7457d80e to 963d4de3:

+    /home/sk/mydata/vi editor.pdf

Files:           1 new,     0 removed,     0 changed
Dirs:            0 new,     0 removed
Others:          0 new,     0 removed
Data Blobs:      1 new,     0 removed
Tree Blobs:      4 new,     4 removed
  Added:   50.123 KiB
  Removed: 4.511 KiB

Seperti yang Anda lihat, saya telah menambahkan file pdf baru di cadangan.

Kecualikan file dan folder

Dimungkinkan juga untuk mengecualikan beberapa file atau direktori. Misalnya perintah berikut akan mengecualikan semua .doc ketik file:

$ restic -r ~/mybackup backup --exclude=*.doc ~/mydata

Atau, Anda dapat meletakkan lokasi sebenarnya dari semua file dan folder yang ingin Anda kecualikan dari cadangan dalam file dan menentukan jalurnya dalam perintah pencadangan.

Misalnya, buat file bernama kecualikan :

$ vi exclude.txt

Tambahkan file atau folder yang ingin Anda kecualikan:

*.txt
ostechnix.zip
mydata/movies

Sekarang, mulai proses pencadangan menggunakan perintah:

$ restic -r ~/backup backup --exclude-file=exclude.txt ~/mydata

Untuk detail selengkapnya tentang restic backup perintah, silakan jalankan:

$ restic help backup

Sekarang, kami telah berhasil membuat cadangan data kami. Selanjutnya kita akan melihat cara mengembalikan data dari cadangan lokal.

Pulihkan data menggunakan Restic

Memulihkan data itu mudah!

Pertama, buat daftar snapshot yang tersedia dari repositori menggunakan perintah:

$ restic -r ~/mybackup snapshots

Untuk memulihkan data dari cuplikan tertentu, misalnya 7457d80e , jalankan:

$ restic -r ~/mybackup restore 7457d80e --target ~/mydata

Contoh keluaran:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
restoring <Snapshot 7457d80e of [/home/sk/mydata] at 2021-08-13 12:51:58.592771333 +0530 IST by [email protected]> to /home/sk/mydata

Kami baru saja memulihkan data dari cuplikan 7457d80e ke ~/dataku direktori.

Untuk memulihkan satu file dari snapshot, kami melakukan:

$ restic -r ~/mybackup restore 7457d80e --target ~/mydata file.json

Untuk lebih jelasnya, periksa restore bagian bantuan perintah.

$ restic help restore

Pasang repositori untuk melihat data cadangan

Anda dapat menelusuri cadangan sebagai sistem file biasa. Ini berguna ketika Anda ingin melihat isi repositori.

Pertama, buat titik pemasangan:

$ mkdir ostechnix

Kemudian, pasang repositori Anda di ostechnix mount point seperti yang ditunjukkan di bawah ini.

$ restic -r ~/mybackup mount ostechnix/

Perintah ini akan memasang repositori Restic di sistem file lokal Anda.

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
Now serving the repository at ostechnix/
When finished, quit with Ctrl-c or umount the mountpoint.

Sekarang, buka pengelola file Anda dan Anda akan melihat bahwa repositori Anda sudah terpasang di sana. Buka folder snapshot dan verifikasi data.

Setelah selesai, tekan Ctrl-c untuk keluar atau umount mountpoint dari Manajer file.

Untuk detail selengkapnya, periksa bagian bantuan:

$ restic help mount

Hapus cuplikan

Pertama, daftar semua snapshot yang tersedia di repositori:

$ restic -r ~/mybackup snapshots
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
963d4de3  2021-08-13 12:57:55  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
2 snapshots

Untuk menghapus cuplikan, misalnya 963d4de3 , jalankan:

$ restic -r ~/mybackup forget 963d4de3

Contoh keluaran:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
[0:00] 100.00%  1 / 1 files deleted

Periksa apakah snapshot dihapus atau tidak:

$ restic -r ~/mybackup snapshots
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
1 snapshots

Cuplikannya hilang! Namun, data yang dirujuk oleh file dalam snapshot ini masih disimpan di repositori.

Untuk membersihkan data yang tidak direferensikan, jalankan:

$ restic -r ~/mybackup prune

Contoh keluaran:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
loading indexes...
loading all snapshots...
finding data that is still in use for 1 snapshots
[0:00] 100.00%  1 / 1 snapshots
searching used packs...
collecting packs for deletion and repacking
[0:00] 100.00%  8 / 8 packs processed

to repack:            0 blobs / 0 B
this removes          0 blobs / 0 B
to delete:            5 blobs / 50.279 KiB
total prune:          5 blobs / 50.279 KiB
remaining:           25 blobs / 21.919 MiB
unused size after prune: 0 B (0.00% of remaining size)

rebuilding index
[0:00] 100.00%  6 / 6 packs processed
deleting obsolete index files
[0:00] 100.00%  3 / 3 files deleted
removing 2 old packs
[0:00] 100.00%  2 / 2 files deleted
done

Setelah menghapus semua snapshot dan data terkait, Anda dapat menghapus repositori.

$ rm -fr ~/mybackup/

Kesimpulan

Anda sekarang tahu cara menginstal dan menggunakan program cadangan Restic untuk melindungi data penting Anda. Kami hanya membahas cara bakup file dan folder ke direktori lokal dengan Restic. Masih ada lagi! Dalam panduan kami yang akan datang, kami akan melihat cara mencadangkan data ke sistem jarak jauh dan penyimpanan cloud.

Saya juga menyarankan Anda untuk memeriksa dokumentasi resmi Restic untuk penggunaan yang lebih detail.


Linux
  1. Cara Menginstal dan Menguji Ansible di Linux

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

  3. Cara membangun &menginstal GLFW 3 dan menggunakannya dalam proyek Linux

  1. Cara Menginstal Dan Menggunakan Flatpak Di 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 menginstal Elasticsearch dan Kibana di Linux

  2. Cara Mencadangkan dan Mengembalikan Data &Konfigurasi RabbitMQ

  3. Cara Menginstal MongoDB dari Sumber (dan menggunakan YUM) di Linux