Menginstal rsnapshot di CentOS (1)
Bekerja pada perusahaan IT Support, saya membutuhkan solusi untuk backup otomatis beberapa server Linux, tips kali ini akan mengajari anda menyetting rsnapshot di CentOS agar menjalankan rsync & ssh binary diff secara otomatis untuk membackup.
Menginstal rsnapshot di CentOS / RHEL membutuhkan repository EPEL, silakan lihat petunjuknya disini, saat menggunakan repo EPEL saya sarankan pergunakan YUM priorities.
Setelah repo EPEL terinstal, jalankan perintah berikut menggunakan user root:
yum install rsnapshot
Perintah tsb akan menginstal Rsnapshot dan juga menginstal semua paket dependensinya.
Buka file /etc/rsnapshot.conf menggunakan text editor pilihan anda, mari kita lihat pada bagian snapshot_root, bagian ini adalah lokasi dimana rsnapshot menyimpan backupnya. Secara default akan ditaruh di direktori root, namun saya rubah ke /backup/snapshots/.
# All snapshots will be stored under this root directory. # snapshot_root /backup/snapshots/
Kemudian saya hilangkan tanda pagar pada no_create_root 1 ; ini akan menghentikan rsnapshot membuat direktori snapshot_root (yang berarti anda harus membuatnya sendiri). Keuntungannya, jika anda membackup ke USB drive dan anda lupa memasangnya, rsnapshot tidak akan membackup ke mount point tsb, atau memenuhinya, yang kemungkinan bisa menyebakan server crash (jika anda salah mempartisinya).
# If no_create_root is enabled, rsnapshot will not automatically create the # snapshot_root directory. This is particularly useful if you are backing # up to removable media, such as a FireWire or USB drive. # no_create_root 1
Karena kita menggunakan Linux, jadi hilangkan tanda pagar pada baris cmd_cp.
# 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 /bin/cp
Kemudian hilangkan tanda pagar pada baris cmd_ssh dan berikan path yang benar ke ssh binary.
# Uncomment this to enable remote ssh backups over rsync. # cmd_ssh /usr/bin/ssh
Saya hilangkan tanda pagar pada opsi du, tool kecil yang bagus untuk memberitahu ukuran dari tiap snapshot yang sudah anda buat. (ingat, jika anda baru saja melakukan du -sh * di direktori snapshot, akan terjadi salah pembacaaan karena hard linking).
# 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
Baris selanjutnya adalah Interval Backup, seperti yang anda lihat saya biarkan defaultnya, jadi rsnapshot akan menyimpan 6 copy backup jam-jaman sebelum ia mulai menulisi lagi backup yang pertama, 7 copy backup harian, 4 copy backup mingguan dan 3 copy backup bulanan!
######################################### # 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
Opsi Global
Defaultnya sudah bagus, namun saya ingin lebih verbose sampai saya senang saat backup system berjalan sesuai keinginan. Saya rubah settingnya menjadi 4 (extra verbose), settingan no 4 menampilkan perintah diatas baris perintah, seperti jika anda memasukkannya sendiri, ini yang saya mau!
# Verbose level, 1 through 5. # 1 Quiet Print fatal errors only # 2 Default Print errors and warnings only # 3 Verbose Show equivalent shell commands being executed # 4 Extra Verbose Show extra verbose information # 5 Debug mode Everything # verbose
logfile, saya hilangkan tanda pagar pada baris ini, seperti yang kita ketahui bahwa log penting sekali untuk mengetahui apa yang salah.
# If you enable this, data will be written to the file you specify. The # amount of data written is controlled by the "loglevel" parameter. # logfile /var/log/rsnapshot
exclude – setelah menjalankan backup pertama, pasti saya akan mendapatkan sekelompok file VMWare disk image di direktori home, jadi saya buang mereka dengan cara:
# The include and exclude parameters, if enabled, simply get passed directly # to rsync. If you have multiple include/exclude patterns, put each one on a # separate line. Please look up the --include and --exclude options in the # rsync man page for more details on how to specify file name patterns. # #include ??? #include ??? #exclude ??? exclude /home/keith/vmware-disks/
Berikutnya saya mengkonfigurasi backup point, dimana saya ingin membackup dari setiap mesin, dimulai dari localhost.
############################### ### BACKUP POINTS / SCRIPTS ### ############################### # LOCALHOST backup /home/ localhost/ backup /etc/ localhost/ backup /usr/local/ localhost/ backup /var/log/ localhost/ backup /srv/ localhost/ backup /boot/ localhost/ backup /opt/ localhost/
Sekarang saya ingin membackup email server saya, the-death-star, jadi saya konfigurasi backup server saya untuk mengambil data tsb melalui SSH (kira-kira spt ketika Star Destroyer menarik Millenium Falcon menggunakan tractor beam-nya, 😉 ).
backup root@the-death-star.techspotting.org:/home/ the-death-star/ backup root@the-death-star.techspotting.org:/etc/ the-death-star/ backup root@the-death-star.techspotting.org:/usr/local/bin/ the-death-star/
Itulah akhir dari editing file konfigurasi, sekarang waktunya memberikan tes pada konfigurasi anda dengan perintah:
rsnapshot configtest
Hasil dari perintah ini akan berkata Syntax OK, kecuali anda melakukan kesalahan, dimana anda akan diberitahu letak kesalahannya, silakan perbaiki kembali.
bersambung…
Sumber: HowtoForge.com