Panduan ini menjelaskan apa itu Rsnapshot, cara menginstal Rsnapshot di Linux, dan cara menyiapkan server cadangan menggunakan Rsnapshot di Linux.
1. Pendahuluan
Rsnapshot adalah utilitas snapshot sistem file berdasarkan rsync untuk Linux dan sistem operasi mirip Unix. Ini memungkinkan Anda untuk dengan mudah membuat snapshot berkala dari mesin lokal, dan mesin jarak jauh melalui ssh.
Hal yang baik tentang rsnapshot adalah ia banyak menggunakan tautan keras bila memungkinkan, untuk sangat mengurangi ruang disk yang diperlukan.
Karena rsnapshot hanya menyimpan sejumlah snapshot yang tetap, jumlah ruang disk yang digunakan tidak akan terus bertambah.
Rnapshot adalah aplikasi pencadangan sumber terbuka dan gratis yang mendukung pencadangan tambahan. Itu ditulis seluruhnya dalam perl , dan itu harus bekerja pada sebagian besar sistem mirip Unix.
Tanpa basa-basi lagi, mari kita lanjutkan dan lihat cara menginstal, mengkonfigurasi, dan mengatur server cadangan menggunakan Rsnapshot di Linux.
2. Instal Rsnapshot di Linux
Rsnapshot dikemas untuk banyak distribusi Linux.
Instal Rsnaphot di Alpine Linux:
$ sudo apk add rsnapshot rsync
Instal Rsnapshot di Arch Linux, EndeavourOS dan Manjaro Linux:
$ sudo pacman -S rsnapshot rsync
Instal Rsnapshot di Debian, Ubuntu, Linux Mint, Pop_OS!:
$ sudo apt install rsnapshot rsync
Instal Rsnapshot di CentOS, Fedora, RHEL, AlmaLinux, Rocky Linux:
Rsnapshot tidak tersedia di repositori default sistem operasi Perusahaan seperti CentOS, RHEL, AlmaLinux dan Rocky Linux. Anda harus mengaktifkan [EPEL] repositori untuk menginstal Rsnapshot.
$ sudo dnf install epel-release
Kemudian, instal Rsnapshot menggunakan perintah:
$ sudo dnf install rsnapshot rsync
Instal Rsnapshot di openSUSE:
$ sudo zypper install rsnapshot rsync
3. Siapkan server Cadangan menggunakan Rsnapshot di Linux
Untuk tujuan panduan ini, saya akan menggunakan dua sistem pengujian.
Salah satunya adalah server cadangan yang berjalan dengan AlmaLinux 8 dan yang lainnya bertindak sebagai sistem klien. Klien berjalan dengan desktop Fedora 34.
Rincian server cadangan dan klien diberikan di bawah ini.
Server cadangan:
- OS :Sistem minimal AlmaLinux 8 64 bit
- Alamat IP :192.168.122.25/24
- Direktori root Rsnapshot :/rsnapbackup
- Direktori untuk dicadangkan :/home/ostechnix/data/
Klien :
- OS :Stasiun Kerja Fedora 34
- Alamat IP :192.168.225.37/24
- Direktori untuk dicadangkan :/home/sk/data/
3.1. Siapkan otentikasi SSH tanpa kata sandi di server cadangan
Untuk mencadangkan file sistem klien jarak jauh melalui SSH, Anda perlu mengatur autentikasi SSH tanpa sandi untuk sistem klien jarak jauh, sehingga pencadangan akan secara otomatis terhubung ke sistem klien tanpa kata sandi dan mencadangkan data klien.
Masuk sebagai root
pengguna dan buat pasangan kunci SSH di sistem server Cadangan kami.
# ssh-keygen
Jangan masukkan frasa sandi apa pun , karena kami ingin sistem ini dapat terhubung satu sama lain tanpa intervensi pengguna:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:k/yIpwuk2lqEVxW4O0/6evTjquxCcGffQU0Kgm1ZvPk [email protected] The key's randomart image is: +---[RSA 3072]----+ | o.==. o. | | . =o..... | | ... +. | |....+ o... | |.ooo.o oS. | | o.oo +.E+ | | .o .*..o . | | +....ooo | |o..o===+.. | +----[SHA256]-----+
Selanjutnya, salin kunci publik SSH ke semua sistem klien jarak jauh Anda.
# ssh-copy-id [email protected]
Ganti sk
dan 192.168.225.37
dalam perintah di atas dengan nama pengguna dan alamat IP sistem jarak jauh Anda. Masukkan kata sandi pengguna sistem klien Anda untuk menyalin file kunci publik:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
Di sini, 192.168.225.37 adalah alamat IP dari sistem klien jarak jauh saya (yaitu Fedora Desktop).
Sekarang Anda dapat ssh ke sistem klien tanpa kata sandi apa pun.
Ulangi perintah di atas untuk menyalin kunci publik ssh ke semua sistem klien Anda untuk menyiapkan autentikasi tanpa kata sandi.
Selanjutnya, kita perlu mengkonfigurasi server Cadangan.
3.2. Konfigurasi server cadangan Rsnapshot
Buat Direktori cadangan root untuk menyimpan semua cadangan server dan sistem klien Anda.
Untuk tujuan panduan ini, saya menggunakan /rsnapbackup/
sebagai direktori cadangan root. Ini adalah direktori tempat saya akan menyimpan semua cadangan.
Anda dapat menentukan lokasi pilihan Anda sendiri untuk menyimpan cadangan.
Mari kita buat direktori cadangan Root di server cadangan kita dengan perintah:
# mkdir /rsnapbackup
Selanjutnya kita perlu mengedit dan memperbarui direktori backup Root, direktori yang ingin Anda backup, dan interval backup di file konfigurasi default Rsnapshot /etc/rsnapshot.conf
.
Sebelum mengedit konfigurasi, selalu disarankan untuk membuat cadangan file konfigurasi default jika Anda perlu mengkonfigurasi ulang rsnapshot lagi.
# cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak
Sekarang, edit file konfigurasi rsnapshot menggunakan perintah:
# nano /etc/rsnapshot.conf
Konfigurasi default seharusnya berfungsi dengan baik. Yang perlu Anda lakukan hanyalah menentukan direktori pencadangan dan interval pencadangan.
Perhatian: Harap perhatikan bahwa Anda harus menentukan garis miring tambahan di akhir nama direktori di /etc/rsnapshot.conf
mengajukan. Katakanlah misalnya, Anda harus menentukan nama direktori sebagai /rsnapbackup/
, tetapi bukan /rsnapbackup
. Selain itu, Anda perlu menggunakan tab (bukan spasi) antar elemen/bidang .
Pertama, mari kita siapkan direktori cadangan Root yaitu menentukan direktori tempat kita ingin menyimpan cadangan sistem file. Dalam kasus kami, saya akan menyimpan cadangan di /rsnapbackup/
direktori.
# All snapshots will be stored under this root directory. # snapshot_root /rsnapbackup/
Sekali lagi, Anda harus menggunakan kunci TAB antara snapshot_root elemen dan direktori cadangan Anda.
Catatan: Rsnapshot tidak mendukung root snapshot jarak jauh melalui SSH.
Gulir ke bawah sedikit, dan pastikan baris berikut (ditandai dengan huruf tebal) tidak diberi komentar:
[...] ################################# # EXTERNAL PROGRAM DEPENDENCIES # ################################# # LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features. # EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility. # # See the README file or the man page for more details. # cmd_cp /usr/bin/cp # uncomment this to use the rm program instead of the built-in perl routine. # cmd_rm /usr/bin/rm # rsync must be enabled for anything to work. This is the only command that # must be enabled. # cmd_rsync /usr/bin/rsync # Uncomment this to enable remote ssh backups over rsync. # cmd_ssh /usr/bin/ssh # Comment this out to disable syslog support. # cmd_logger /usr/bin/logger # Uncomment this to specify the path to "du" for disk usage checks. # If you have an older version of "du", you may also want to check the # "du_args" parameter below. # cmd_du /usr/bin/du [...]
Selanjutnya, kita perlu menentukan interval pencadangan:
######################################### # BACKUP LEVELS / INTERVALS # # Must be unique and in ascending order # # e.g. alpha, beta, gamma, etc. # ######################################### retain alpha 6 retain beta 7 retain gamma 4 #retain delta 3
Di sini, pertahankan alfa 6 artinya setiap kali rsnapshot alfa dijalankan, itu akan membuat snapshot baru, memutar yang lama, dan menyimpan enam cadangan terbaru di direktori bernama alpha.0
, alpha.1
,... alpha.5
di direktori root Rsnapshot. Kemudian pada saat perintah dijalankan, alpha.5
direktori akan dihapus.
Demikian pula, ketika kita memanggil rsnapshot beta
setiap kali, itu akan membuat snapshot baru, memutar yang lama dan menyimpan 7 cadangan terbaru (delta.0 - delta.6)
Harap dicatat bahwa alpha
, beta
, gamma
, dan delta
hanyalah nama untuk menentukan interval pencadangan. Anda juga dapat menentukan interval Anda sendiri.
Misalnya, Anda dapat mengganti level cadangan default dengan beberapa nama bermakna pilihan Anda seperti di bawah ini:
retain hourly 24 retain daily 7 retain weekly 4 retain monthly 12
Saat kami memanggil rnsapshot hourly
, itu akan membuat cadangan baru di <rsnapshot-root>/hourly.0/
direktori. Ketika Anda menjalankan perintah ini setiap kali, ia akan terus membuat direktori baru hingga <rsnapshot-root>/hourly.23/
.
Ini sama untuk pencadangan harian, mingguan, dan bulanan.
Selanjutnya, batalkan komentar pada baris berikut jika Anda ingin mengatur file log untuk Rsnapshot:
logfile /var/log/rsnapshot
Jika Anda telah mengubah port default SSH , Anda perlu menghapus komentar pada baris ini dan menyebutkan nomor port yang valid di sini:
ssh_args -p 2222
Terakhir, Anda perlu menentukan direktori yang ingin Anda backup. Temukan arahan berikut di file konfigurasi rsnapshot Anda dan atur lokasi direktori cadangan.
############################### ### BACKUP POINTS / SCRIPTS ### ############################### # LOCALHOST backup /home/ostechnix/data/ myserverbackup/
Disini saya akan membackup isi dari /home/ostechnix/data/
direktori dan simpan di /rsnapbackup/myserverbackup/
direktori.
Perhatian: Harap perhatikan bahwa saya tidak menentukan path lengkap (yaitu /rsnapbackup/myserverbackup/
) pada konfigurasi di atas. Karena, kami sudah menyebutkan direktori cadangan Root sebelumnya. Jadi kita tidak perlu menentukan direktori root Rsnapshot di sini.
Demikian juga, tentukan lokasi pencadangan sistem klien jarak jauh Anda.
# REMOTEHOST backup [email protected]:/home/sk/data/ myclientbackup/
Di sini, saya akan mencadangkan konten /home/sk/data/
sistem klien jarak jauh saya direktori dan simpan di /rsnapbackup/myclientbackup/
direktori di server Cadangan saya.
Sekali lagi, harap perhatikan bahwa saya tidak menentukan path lengkap (/rsnapbackup/myclientbackup/
) pada konfigurasi di atas. Karena, kita sudah mendefinisikan direktori backup Root.
Simpan dan tutup /etc/rsnapshot.conf
berkas.
Setelah Anda melakukan semua perubahan, jalankan perintah berikut untuk memverifikasi bahwa file konfigurasi valid secara sintaksis.
$ rsnapshot configtest
Jika semuanya baik-baik saja, Anda akan melihat output berikut.
Syntax OK
3.3. Mulai pencadangan
Jalankan perintah berikut untuk memulai pencadangan secara manual menggunakan Rsnapshot.
# rsnapshot alpha
Pencadangan pertama akan memakan waktu beberapa menit hingga beberapa jam tergantung pada ukuran cadangan. Pencadangan selanjutnya akan jauh lebih cepat, karena Rsnapshot hanya akan mencadangkan perbedaannya.
Demikian pula, Anda dapat memulai level pencadangan lainnya:
# rsnapshot beta
# rsnapshot gamma
# rsnapshot daily
3.4. Memverifikasi dan melihat cadangan
Mari kita periksa apakah cadangan benar-benar disimpan di direktori cadangan Root di server Cadangan.
# ls /rsnapbackup/
Anda akan melihat output berikut:
alpha.0
Periksa isi alpha.0
direktori:
# ls /rsnapbackup/alpha.0/
Anda akan melihat ada dua direktori yang dibuat secara otomatis, satu untuk cadangan lokal (myserverbackup), dan satu lagi untuk sistem jarak jauh (myclientbackup).
myclientbackup myserverbackup
Untuk memeriksa cadangan sistem klien, jalankan:
# ls /rsnapbackup/alpha.0/myclientbackup/
Periksa cadangan sistem server (sistem lokal):
# ls /rsnapbackup/alpha.0/myserverbackup/
Saat Anda menjalankan Rnaspshot masing-masing, itu akan membuat direktori baru seperti alpha.0
, alpha.1
dan seterusnya, tergantung pada jumlah level penyimpanan yang Anda konfigurasikan.
# ls /rsnapbackup/ alpha.0 alpha.1
alpha.0
direktori akan berisi cadangan terbaru.
3.5. Jadwalkan pencadangan
Anda tidak perlu menjalankan perintah rsnapshot untuk membuat cadangan setiap saat. Cukup tentukan tugas cron untuk mengotomatiskan pekerjaan pencadangan secara berkala.
Untuk melakukannya, buat file tugas cron baru untuk rsnapshot:
# nano /etc/cron.d/rsnapshot
Tambahkan baris berikut:
0 */4 * * * /usr/bin/rsnapshot alpha 50 23 * * * /usr/bin/rsnapshot beta 00 22 1 * * /usr/bin/rsnapshot delta
Baris pertama menunjukkan bahwa akan ada enam alpha snapshot yang diambil setiap hari (pada 0,4,8,12,16, dan 20 jam), beta snapshot diambil setiap malam pada pukul 23:50, dan delta snapshot akan diambil pada pukul 10 malam pada hari pertama setiap bulan. Anda dapat menyesuaikan waktu sesuai keinginan Anda. Simpan dan tutup file.
Selesai! Mulai sekarang, Rsnapshot akan secara otomatis mencadangkan data Anda pada waktu yang ditentukan.
Untuk detail lebih lanjut, lihat halaman manual.
# man rsnapshot
4. Pulihkan file
Memulihkan file itu mudah! Jika Anda memiliki sudo
atau root
akses di server cadangan, Anda cukup menyalin file dari direktori root Rsnapshot yaitu /rsnapbackup/
.
5. Kesimpulan
Menyiapkan server cadangan dengan Rsnapshot di Linux tidak terlalu sulit. Konfigurasi awal mungkin tampak sulit dan membutuhkan sedikit waktu. Tetapi begitu Anda menyiapkan server cadangan Rsnapshot dengan benar, server ini akan berfungsi selamanya, tanpa campur tangan pengguna.
Sumber daya:
- Situs web Rsnapshot
- Repositori Rsnapshot GitHub
Bacaan terkait:
- Cara Mencadangkan Seluruh Sistem Linux Anda Menggunakan Rsync
- Cara Mencadangkan File Dan Direktori Menggunakan Rsync Di Linux
- Cara Mencadangkan Dan Mengembalikan File Menggunakan Deja Dup Di Linux
- Cara Mencadangkan Dan Mengembalikan Sistem Linux Dengan Timeshift
- Cara Menyinkronkan File Dengan Unison Di Linux
- Cara Menyinkronkan Direktori Lokal Dan Jarak Jauh Di Linux
- Cara Menyinkronkan File Dan Direktori Menggunakan Zaloha.sh
- CYA – Snapshot Sistem Dan Utilitas Pemulihan Untuk Linux
- Restic – Aplikasi Pencadangan yang Cepat, Aman, dan Efisien