rsnapshot adalah utilitas cadangan Linux gratis yang mengagumkan untuk melakukan pencadangan rsync dari sistem file lokal dan jarak jauh.
Ini adalah seri dari dua artikel. Dalam artikel ini, mari kita tinjau cara menginstal dan mengonfigurasi utilitas rsnapshot untuk mengambil rsync backup dari sistem file lokal. Pada artikel berikutnya, mari kita tinjau cara mengatur utilitas rsnapshot untuk mengambil cadangan rsync dari sistem file jarak jauh.
rsnapshot menggunakan kombinasi rsync dan tautan keras untuk mempertahankan cadangan penuh dan cadangan tambahan. Setelah Anda mengatur dan mengonfigurasi rsnapshot, sama sekali tidak ada pemeliharaan yang terlibat di dalamnya. rsnapshot akan secara otomatis menghapus dan memutar cadangan lama.
Ini juga membutuhkan ruang disk yang sangat sedikit. Cadangan penuh pertama akan berukuran sama dengan file dan direktori asli Anda. Pencadangan penuh rsnapshot berikutnya hanya membutuhkan lebih sedikit ruang, karena hanya membutuhkan cadangan file yang dimodifikasi dari cadangan lengkap sebelumnya.
1. Unduh Utilitas Pencadangan Linux rsnapshot
Unduh utilitas rsnapshot dari rsnapshot.org seperti yang ditunjukkan di bawah ini.
# cd /usr/src # wget http://www.rsnapshot.org/downloads/rsnapshot-1.3.1.tar.gz # tar xvfz rsnapshot-1.3.1.tar.gz # cd rsnapshot-1.3.1
2. Instal rsnapshot untuk mencadangkan direktori Linux
Instal utilitas backup rsnapshot Linux menggunakan ./configure dan lakukan instalasi seperti yang ditunjukkan di bawah ini.
# ./configure --sysconfdir=/etc checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes config.status: creating t/rsync.t config.status: creating t/gnu_cp.t config.status: creating t/relative_delete_bugfix.t Type "make install" to install the program. After rsnapshot is installed, don't forget to copy /etc/rsnapshot.conf.default to /etc/rsnapshot.conf # make install /usr/bin/pod2man -c '' -n 'rsnapshot' -r '' rsnapshot > rsnapshot.1 /usr/bin/pod2man -c '' -n 'rsnapshot-diff' -r '' rsnapshot-diff > rsnapshot-diff.1 make[1]: Entering directory `/usr/src/rsnapshot-1.3.1' test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin" /usr/bin/install -c 'rsnapshot' '/usr/local/bin/rsnapshot' /usr/bin/install -c 'rsnapshot-diff' '/usr/local/bin/rsnapshot-diff' test -z "/etc" || mkdir -p -- "/etc" /usr/bin/install -c -m 644 'rsnapshot.conf.default' '/etc/rsnapshot.conf.default' test -z "/usr/local/man/man1" || mkdir -p -- "/usr/local/man/man1" /usr/bin/install -c -m 644 './rsnapshot.1' '/usr/local/man/man1/rsnapshot.1' /usr/bin/install -c -m 644 './rsnapshot-diff.1' '/usr/local/man/man1/rsnapshot-diff.1' make[1]: Leaving directory `/usr/src/rsnapshot-1.3.1'
Sekarang, buat rsnapshot.conf baru berdasarkan file konfigurasi default yang disertakan dengan utilitas backup rsnapshot linux.
# cp /etc/rsnapshot.conf.default /etc/rsnapshot.conf
3. Konfigurasikan rsnapshot dan Tentukan Direktori Sumber Cadangan
Buka /etc/rsnapshot.conf dan batalkan komentar pada baris berikut.
# vi /etc/rsnapshot.conf cmd_cp /bin/cp cmd_ssh /usr/bin/ssh cmd_du /usr/bin/du cmd_rsnapshot_diff /usr/local/bin/rsnapshot-diff logfile /var/log/rsnapshot
Tentukan direktori cadangan tujuan di /etc/rsnapshot.conf seperti yang ditunjukkan di bawah ini. Dalam contoh ini,
- /dst – direktori sumber yang harus dicadangkan
- localhost/ – direktori tujuan tempat cadangan akan disimpan. Harap perhatikan bahwa direktori ini akan dibuat di bawah direktori /.snapshots/{internal.n}/ seperti yang ditunjukkan pada langkah terakhir.
# vi /etc/rsnapshot.conf backup /etc/ localhost/
Catatan: Ubah /etc/ ke direktori yang sesuai yang ingin Anda backup.
4. Uji Konfigurasi rsnapshot
Lakukan pengujian konfigurasi untuk memastikan rsnapshot telah diatur dengan benar dan siap untuk melakukan pencadangan rsync linux.
# rsnapshot configtest Syntax OK
5. Verifikasi rsnapshot Konfigurasi Pencadangan Per Jam
Anda dapat membuat cadangan direktori atau file linux pada berbagai interval. Secara default, pencadangan per jam dan harian dikonfigurasi.
Verifikasi konfigurasi pencadangan setiap jam.
# rsnapshot -t hourly echo 6490 > /var/run/rsnapshot.pid mkdir -m 0700 -p /.snapshots/ mkdir -m 0755 -p /.snapshots/hourly.0/ /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \ /.snapshots/hourly.0/localhost/ mkdir -m 0755 -p /.snapshots/hourly.0/ /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \ /.snapshots/hourly.0/localhost/ mkdir -m 0755 -p /.snapshots/hourly.0/ /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \ /usr/local /.snapshots/hourly.0/localhost/ touch /.snapshots/hourly.0/
6. Verifikasi Konfigurasi Pencadangan Harian rsnapshot
Pastikan proses pencadangan rsnapshot cwrsync harian dikonfigurasi dengan benar.
# rsnapshot -t daily echo 6493 > /var/run/rsnapshot.pid mkdir -m 0700 -p /.snapshots/ /.snapshots/hourly.5 not present (yet), nothing to copy
7. Interval Cadangan rsnapshot tidak valid
Tidak ada interval pencadangan bulanan. Jadi, jika Anda mencoba memverifikasi konfigurasi pencadangan bulanan, Anda mungkin mendapatkan pesan ini seperti yang ditunjukkan di bawah ini — ERROR:Interval “monthly” unknown, check /etc/rsnapshot.conf
# rsnapshot -t weekly echo 6495 > /var/run/rsnapshot.pid mkdir -m 0700 -p /.snapshots/ /.snapshots/daily.6 not present (yet), nothing to copy # rsnapshot -t monthly echo 6496 > /var/run/rsnapshot.pid mkdir -m 0700 -p /.snapshots/ ---------------------------------------------------------------------------- rsnapshot encountered an error! The program was invoked with these options: /usr/local/bin/rsnapshot -t monthly ---------------------------------------------------------------------------- ERROR: Interval "monthly" unknown, check /etc/rsnapshot.conf
8. Tambahkan Entri Crontab untuk rsnapshot
Setelah Anda memverifikasi bahwa konfigurasi cadangan rsync per jam dan harian telah diatur dengan benar di utilitas rsnapshot cwrsync, sekarang saatnya untuk mengatur anak anjing ini di crontab seperti yang ditunjukkan di bawah ini.
# crontab -e 0 */4 * * * /usr/local/bin/rsnapshot hourly 30 23 * * * /usr/local/bin/rsnapshot daily
Lihat artikel contoh crontab Unix untuk memahami cara menyiapkan dan mengonfigurasi crontab.
9. Verifikasi Pekerjaan rsnapshot Secara Manual (Pemeriksaan satu kali)
Untuk pertama kalinya, Anda mungkin ingin menjalankan pencadangan rsnapshot secara manual untuk memastikannya berfungsi seperti yang diharapkan.
Secara default, semua cadangan rsync yang diambil oleh utilitas rnspashot akan disimpan di bawah direktori /.snapshots.
Karena rsnapshot tidak pernah dieksekusi, direktori ini mungkin tidak ada seperti yang ditunjukkan di bawah ini.
# ls -al /.snapshots/ ls: /.snapshots/: No such file or directory
Jalankan utilitas pencadangan rsnapshot secara manual untuk konfigurasi per jam seperti yang ditunjukkan di bawah ini.
# /usr/local/bin/rsnapshot hourly
Karena kami telah menjalankan pencadangan per jam, utilitas pencadangan linux rsnapshot akan membuat direktori /.snapshots berikut dengan direktori hourly.0
Jelajahi direktori /.snapshots/hourly.0/ untuk memastikan file dan direktori yang telah Anda konfigurasikan di langkah #3 telah dicadangkan dengan benar.
# ls -al /.snapshots/ total 16 drwx------ 3 root root 4096 Jul 13 05:07 .s drwxr-xr-x 25 root root 4096 Jul 13 05:07 .. drwxr-xr-x 3 root root 4096 Jul 13 05:07 hourly.0 # ls -al /.snapshots/hourly.0/localhost/etc/ total 2516 drwxr-xr-x 93 root root 12288 Jul 13 05:05 . drwxr-xr-x 3 root root 4096 Jul 13 05:07 .. -rw-r--r-- 1 root root 15288 Mar 13 2008 a2ps.cfg -rw-r--r-- 1 root root 2562 Mar 13 2008 a2ps-site.cfg drwxr-xr-x 4 root root 4096 Oct 31 2008 acpi -rw-r--r-- 1 root root 44 Jan 16 10:43 adjtime drwxr-xr-x 4 root root 4096 Jan 16 10:36 alchemist -rw-r--r-- 1 root root 2155 Mar 19 08:22 aliases -rw-r----- 1 root smmsp 12288 Mar 19 08:22 aliases.db
Di artikel berikutnya, mari kita tinjau cara mencadangkan beberapa host jarak jauh menggunakan utilitas rsnapshot.