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:
- Direktori lokal,
- server sftp (melalui SSH),
- Server HTTP REST,
- AWS S3,
- OpenStack Swift,
- BackBlaze B2,
- Penyimpanan Microsoft Azure Blob,
- Penyimpanan Google Cloud,
- 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 repositoribackup
- 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.