Rsnapshot (Berbasis Rsync) - Utilitas Cadangan Sistem File Lokal/Jarak Jauh untuk Linux


rsnapshot adalah utilitas pencadangan sistem file lokal/jarak jauh sumber terbuka yang ditulis dalam bahasa Perl yang memanfaatkan kekuatan < programRsync dan SSH untuk membuat, menjadwalkan pencadangan tambahan sistem file Linux/Unix, namun hanya menghabiskan ruang satu cadangan penuh ditambah perbedaannya dan simpan cadangan tersebut di drive lokal ke hard drive berbeda, stik USB eksternal , drive yang dipasang di NFS atau cukup melalui jaringan ke komputer lain melalui SSH.

Artikel ini akan mendemonstrasikan cara menginstal, menyiapkan, dan menggunakan rsnapshot untuk membuat setiap jam, harian, mingguan, dan mingguan tambahan. pencadangan lokal kuat>bulanan, serta pencadangan jarak jauh. Untuk melakukan semua langkah dalam artikel ini, Anda harus menjadi pengguna root.

Langkah 1: Menginstal Cadangan Rsnapshot di Linux

Pemasangan rsnapshot menggunakan Yum dan APT mungkin sedikit berbeda, jika Anda menggunakan Red Hat dan Distribusi berbasis Debian.

Di RHEL/CentOS

Pertama, Anda harus menginstal dan mengaktifkan repositori pihak ketiga yang disebut EPEL. Silakan ikuti tautan di bawah ini untuk menginstal dan mengaktifkan di sistem RHEL/CentOS Anda. Pengguna Fedora tidak memerlukan konfigurasi repositori khusus apa pun.

  1. Instal dan Aktifkan Repositori EPEL di RHEL/CentOS 6/5/4

Setelah Anda menyiapkan semuanya, instal rsnapshot dari baris perintah seperti yang ditunjukkan.

yum install rsnapshot
Di Debian/Ubuntu/Linux Mint

Secara default, rsnapshot disertakan dalam repositori Ubuntu, sehingga Anda dapat menginstalnya menggunakan perintah apt-get seperti yang ditunjukkan.

apt-get install rsnapshot

Langkah 2: Menyiapkan Login Tanpa Kata Sandi SSH

Untuk mencadangkan server Linux jarak jauh, server cadangan rsnapshot Anda akan dapat terhubung melalui SSH tanpa kata sandi. Untuk mencapai hal ini, Anda perlu membuat kunci publik dan pribadi SSH untuk mengautentikasi di server rsnapshot. Silakan ikuti tautan di bawah ini untuk membuat kunci publik dan pribadi di server cadangan rsnapshot Anda.

  1. Buat Login SSH Tanpa Kata Sandi Menggunakan SSH Keygen

Langkah 3: Mengonfigurasi Rsnapshot

Sekarang Anda perlu mengedit dan menambahkan beberapa parameter ke file konfigurasi rsnapshot. Buka file rsnapshot.conf dengan editor vi atau nano.

vi /etc/rsnapshot.conf

Selanjutnya buat direktori cadangan, tempat Anda ingin menyimpan semua cadangan Anda. Dalam kasus saya, lokasi direktori cadangan saya adalah “/data/backup/ ”. Cari dan edit parameter berikut untuk mengatur lokasi pencadangan.

snapshot_root			 /data/backup/

Hapus juga komentar pada baris “cmd_ssh” untuk memungkinkan pengambilan cadangan jarak jauh melalui SSH. Untuk membatalkan komentar pada baris tersebut, hapus “#” di depan baris berikut sehingga rsnapshot dapat mentransfer data Anda ke server cadangan dengan aman.

cmd_ssh			/usr/bin/ssh

Selanjutnya, Anda perlu memutuskan berapa banyak cadangan lama yang ingin Anda simpan, karena rsnapshot tidak tahu seberapa sering Anda ingin mengambil snapshot. Anda perlu menentukan berapa banyak data yang akan disimpan, menambahkan interval yang akan disimpan, dan berapa banyak masing-masing data.

Ya, pengaturan default sudah cukup baik, namun saya tetap ingin Anda mengaktifkan interval “bulanan ” sehingga Anda juga dapat memiliki cadangan jangka panjang. Harap edit bagian ini agar terlihat serupa dengan pengaturan di bawah.

#########################################
          BACKUP INTERVALS            #
Must be unique and in ascending order #
i.e. hourly, daily, weekly, etc.      #
#########################################

interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3

Satu hal lagi yang perlu Anda edit adalah variabel “ssh_args”. Jika Anda telah mengubah Port SSH default (22) ke yang lain, Anda perlu menentukan nomor port server pencadangan jarak jauh tersebut.

ssh_args		-p 7851

Terakhir, tambahkan direktori cadangan lokal dan jarak jauh yang ingin Anda cadangankan.

Cadangkan Direktori Lokal

Jika Anda memutuskan untuk mencadangkan direktori Anda secara lokal ke mesin yang sama, entri cadangannya akan terlihat seperti ini. Misalnya, saya mengambil cadangan direktori /tecmint dan /etc saya.

backup		/tecmint/		localhost/
backup		/etc/			localhost/
Cadangkan Direktori Jarak Jauh

Jika Anda ingin membuat cadangan direktori server jarak jauh, maka Anda perlu memberi tahu rsnapshot di mana server berada dan direktori mana yang ingin Anda cadangan. Di sini saya mengambil cadangan direktori “/home” server jarak jauh saya di bawah direktori “/data/backup” di server rsnapshot.

backup		 [email :/home/ 		/data/backup/

Baca Juga:

  1. Cara Mencadangkan/Menyinkronkan Direktori Menggunakan Alat Rsync (Sinkronisasi Jarak Jauh).
  2. Cara Mentransfer File/Folder Menggunakan Perintah SCP
Kecualikan File dan Direktori

Di sini, saya akan mengecualikan semuanya, dan kemudian hanya secara spesifik menentukan apa yang ingin saya cadangankan. Untuk melakukan ini, Anda perlu membuat file pengecualian.

vi /data/backup/tecmint.exclude

Pertama-tama dapatkan daftar direktori yang ingin Anda cadangankan dan tambahkan ( – * ) untuk mengecualikan yang lainnya. Ini hanya akan mencadangkan apa yang Anda daftarkan di file. File pengecualian saya terlihat seperti di bawah ini.

+ /boot
+ /data
+ /tecmint
+ /etc
+ /home
+ /opt
+ /root
+ /usr
- /usr/*
- /var/cache
+ /var
- /*

Menggunakan opsi kecualikan file bisa sangat rumit karena penggunaan rekursi rsync. Jadi, contoh saya di atas mungkin bukan yang Anda cari. Selanjutnya tambahkan file pengecualian ke file rsnapshot.conf.

exclude_file    /data/backup/tecmint.exclude

Akhirnya, Anda hampir selesai dengan konfigurasi awal. Simpan file konfigurasi “/etc/rsnapshot.conf” sebelum melanjutkan lebih jauh. Ada banyak opsi untuk dijelaskan, tetapi ini contoh file konfigurasi saya.

config_version  1.2
snapshot_root   /data/backup/
cmd_cp  /bin/cp
cmd_rm  /bin/rm
cmd_rsync       /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger      /usr/bin/logger
cmd_du  /usr/bin/du
interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3
ssh_args	-p 25000
verbose 	2
loglevel        4
logfile /var/log/rsnapshot/
exclude_file    /data/backup/tecmint.exclude
rsync_long_args --delete        --numeric-ids   --delete-excluded
lockfile        /var/run/rsnapshot.pid
backup		/tecmint/		localhost/
backup		/etc/			localhost/
backup		[email :/home/ 		/data/backup/

Seluruh opsi dan penjelasan argumen di atas adalah sebagai berikut:

  1. config_version 1.2=Versi file konfigurasi
  2. snapshot_root=Tujuan Cadangan untuk menyimpan snapshot
  3. cmd_cp=Jalur untuk menyalin perintah
  4. cmd_rm=Jalur untuk menghapus perintah
  5. cmd_rsync=Jalur menuju rsync
  6. cmd_ssh=Jalur ke SSH
  7. cmd_logger=Jalur ke antarmuka perintah shell ke syslog
  8. cmd_du=Jalur ke perintah penggunaan disk
  9. interval hourly=Berapa banyak cadangan per jam yang harus disimpan.
  10. interval harian=Berapa banyak cadangan harian yang harus disimpan.
  11. interval mingguan=Berapa banyak cadangan mingguan yang harus disimpan.
  12. interval bulanan=Berapa banyak cadangan bulanan yang harus disimpan.
  13. ssh_args=Argumen SSH opsional, seperti port berbeda (-p )
  14. verbose=Cukup jelas
  15. loglevel=Cukup jelas
  16. logfile=Jalur ke file log
  17. exclude_file=Jalur ke file yang dikecualikan (akan dijelaskan lebih detail)
  18. rsync_long_args=Argumen panjang untuk diteruskan ke rsync
  19. lockfile=Cukup jelas
  20. cadangan=Jalur lengkap ke apa yang akan dicadangkan diikuti dengan jalur penempatan relatif.

Langkah 4: Verifikasi Konfigurasi Rsnapshot

Setelah Anda selesai dengan semua konfigurasi Anda, inilah waktunya untuk memverifikasi bahwa semuanya berfungsi seperti yang diharapkan. Jalankan perintah berikut untuk memverifikasi bahwa konfigurasi Anda memiliki sintaks yang benar.

rsnapshot configtest

Syntax OK

Jika semuanya dikonfigurasi dengan benar, Anda akan menerima pesan “Sintaks OK ”. Jika Anda mendapatkan pesan kesalahan, itu berarti Anda harus memperbaiki kesalahan tersebut sebelum menjalankan rsnapshot.

Selanjutnya, lakukan uji coba pada salah satu snapshot untuk memastikan bahwa kami menghasilkan hasil yang benar. Kita menggunakan parameter “setiap jam” untuk melakukan uji coba menggunakan argumen -t (test). Perintah di bawah ini akan menampilkan daftar panjang tentang hal-hal yang akan dilakukannya, tanpa benar-benar melakukannya.

rsnapshot -t hourly
Contoh Keluaran
echo 2028 > /var/run/rsnapshot.pid 
mkdir -m 0700 -p /data/backup/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    /usr/local /data/backup/hourly.0/localhost/ 
touch /data/backup/hourly.0/

Catatan: Perintah di atas memberitahu rsnapshot untuk membuat cadangan “setiap jam”. Itu benar-benar mencetak perintah yang akan dijalankannya saat kita benar-benar menjalankannya.

Langkah 5: Menjalankan Rsnapshot Secara Manual

Setelah memverifikasi hasil, Anda dapat menghapus opsi “-t ” untuk benar-benar menjalankan perintah.

rsnapshot hourly

Perintah di atas akan menjalankan script backup dengan semua konfigurasi yang kita tambahkan di file rsnapshot.conf dan membuat direktori “backup” lalu membuat struktur direktori di bawahnya yang mengatur file kita. Setelah menjalankan perintah di atas, Anda dapat memverifikasi hasilnya dengan masuk ke direktori cadangan dan membuat daftar struktur direktori menggunakan perintah ls -l seperti yang ditunjukkan.

cd /data/backup
ls -l

total 4
drwxr-xr-x 3 root root 4096 Oct 28 09:11 hourly.0

Langkah 6: Mengotomatiskan Proses

Untuk mengotomatiskan proses, Anda perlu menjadwalkan rsnapshot untuk dijalankan pada interval tertentu dari Cron. Secara default, rsnapshot dilengkapi dengan file cron di bawah “/etc/cron.d/rsnapshot“, jika tidak ada, buatlah satu dan tambahkan baris berikut ke dalamnya.

Secara default, aturan diberi komentar, jadi Anda perlu menghapus “# ” di depan bagian penjadwalan untuk mengaktifkan nilai ini.

This is a sample cron file for rsnapshot.
The values used correspond to the examples in /etc/rsnapshot.conf.
There you can also set the backup points and many other things.
#
To activate this cron file you have to uncomment the lines below.
Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly
30     3     * * *    root    /usr/bin/rsnapshot daily
0      3     * * 1    root    /usr/bin/rsnapshot weekly
30     2     1 * *    root    /usr/bin/rsnapshot monthly

Izinkan saya menjelaskan dengan tepat, apa fungsi aturan cron di atas:

  1. Berjalan setiap 4 jam dan membuat direktori setiap jam di bawah direktori /backup.
  2. Berjalan setiap hari pada 03:30 dan membuat direktori harian di bawah direktori /backup.
  3. Dijalankan mingguan setiap Senin pukul 03.00 dan membuat direktori mingguan di bawah /backup.
  4. Dijalankan setiap bulanan pada 02:30 dan membuat direktori bulanan di bawah direktori /backup.

Untuk lebih memahami cara kerja aturan cron, saya sarankan Anda membaca artikel kami yang menjelaskannya.

  1. 11 Contoh Penjadwalan Cron

Langkah 7: Laporan Rsnapshot

rsnapshot memberikan skrip Perl pelaporan kecil yang bagus yang mengirimi Anda peringatan email dengan semua detail tentang apa yang terjadi selama pencadangan data Anda. Untuk menyiapkan skrip ini, Anda perlu menyalin skrip di suatu tempat di bawah “/usr/local/bin” dan membuatnya dapat dieksekusi.

cp /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/local/bin
chmod +x /usr/local/bin/rsnapreport.pl

Selanjutnya, tambahkan parameter “–stats” di file “rsnapshot.conf” Anda ke bagian argumen panjang rsync.

vi /etc/rsnapshot.conf
rsync_long_args --stats	--delete        --numeric-ids   --delete-excluded

Sekarang edit aturan crontab yang ditambahkan sebelumnya dan panggil skrip rsnapreport.pl untuk meneruskan laporan ke alamat email yang ditentukan.

This is a sample cron file for rsnapshot.
The values used correspond to the examples in /etc/rsnapshot.conf.
There you can also set the backup points and many other things.
#
To activate this cron file you have to uncomment the lines below.
Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email 
30     3     * * *    root    /usr/bin/rsnapshot daily 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Daily Backup" [email 
0      3     * * 1    root    /usr/bin/rsnapshot weekly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Weekly Backup" [email 
30     2     1 * *    root    /usr/bin/rsnapshot monthly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Montly Backup" [email 

Setelah Anda menambahkan entri di atas dengan benar, Anda akan mendapatkan laporan ke alamat email Anda seperti di bawah ini.

SOURCE           TOTAL FILES	FILES TRANS	TOTAL MB    MB TRANS   LIST GEN TIME  FILE XFER TIME
--------------------------------------------------------------------------------------------------------
localhost/          185734	   11853   	 2889.45    6179.18    40.661 second   0.000 seconds

Tautan Referensi

  1. beranda rsnapshot

Itu saja untuk saat ini, jika ada masalah yang terjadi selama instalasi, beri saya komentar. Sampai saat itu, pantau terus TecMint untuk artikel menarik lainnya tentang dunia sumber Terbuka.


Seluruh hak cipta. © Linux-Console.net • 2019-2024