Selasa, 26 Januari 2021

RSYNC-backup per tgl

 

Membangun Sistem Backup Otomatis dengan rsync dan cron di Linux Centos 6

Membangun Sistem Backup Otomatis dengan rsync dan cron di Linux Centos 6

Sebagai pengembangan dari penggunaan rsync dari tutorial sebelumnya, kali ini saya akan coba membangun Sistem Backup secara otomatis yakni dengan cron. Cron bisa kita gunakan untuk penjadwalan tugas berdasarkan waktu yang kita tentukan. Cron merupakan fitur default yang sudah berjalan pada server Linux Centos ketika pertama kali diinstall.
Untuk contoh kasus, saya masih menggunakan topologi sederhana seperti diatas, dimana server Gue akan membackup file dan menyimpannya secara remote di server Alay. Disini, rsync akan saya jalankan di server tujuan (Alay) untuk melakukan aksi sinkronisasi terjadwal terhadap file yang ada di server Gue. Untuk membangun system backup ini saya akan membaginya kedalam beberapa tahap, yakni:
  1. Login dengan rsa-key (tanpa password) dari server Alay ke server Gue
  2. Membuat bash script pada server Alay untuk melakukan sinkronisasi file dengan server Gue.
  3. Menambahkan script yang sudah dibuat kedalam cron job, dimana nantinya akan kita jadwalkan untuk menjalankan script setiap pukul 23:45

TAHAP PERTAMA sudah dilakukan dan kita bisa mengikuti tutorial sebelumnya, yakni penggunaan rsa-key untuk login ssh

TAHAP KEDUA, kita akan membuat bash script untuk backup di server remote (Alay)

Pertama, kita lakukan test untuk mengambil file backup dari server Gue. Perintah yang digunakan:

[root@Alay ~]# rsync -avz root@192.168.1.101:/root/filedata /home/BACKUPCONFIG/Gue

Dengan perintah diatas, kita akan mengambil filedata yang berada di server Gue dan menempatkannya dilokasi /home/BACKUPCONIG/Gue. Untuk folder BACKUPCONFIG kita harus membuatnya terlebih dahulu di server Alay dengan mkdir. Sedangkan untuk direktori sriwijaya akan dibuat secara otomatis oleh perintah diatas.
Berikutnya, kita akan melakukan kompresi terhadap direktori yang sudah di backup, dan memberikan nama file berdasarkan waktu. Misalnya nama file backup yang kita kehendaki yakni : tahun-bulan-tanggal-namafile, contohnya: 20140110-backup.tar.gz. Berikut perintah untuk melakukan kompresi file backup tersebut:
[root@Alay ~]# cd /home/BACKUPCONFIG/
[root@Alay BACKUPCONFIG]# tar -czf 20140110-backup.tar.gz Gue/
[root@Alay BACKUPCONFIG]# ls
20140210-backup.tar.gz  Gue

Dari perintah diatas, kita harus masuk terlebih dahulu kedalam direktori dimana hasil backup disimpan, dalam hal ini kita masuk ke direktori BACKUPCONFIG.

Perintah :

[root@Alay BACKUPCONFIG]# tar -czf 20140110-backup.tar.gz Gue/

Bisa diganti dengan :

[root@Alay BACKUPCONFIG]# tar -czf $(date +%Y%m%d)-backup.tar.gz Gue/

Setelah mencoba perintah diatas, kita akan membuat script untuk menggabungkannya agar mempermudah dalam proses penjadwalan nantinya. Kita buat script dengan nama myBackup.sh:
[root@Alay ~]# nano myBackup.sh

Isi script myBackup.sh :

#!/bin/bash
#script by semoetz
#Step 1 : Sinkronisasikan file sumber
rsync -avz root@192.168.1.101:/root/filedata /home/BACKUPCONFIG/Gue

#Step 2 : Masuk ke direktori BACKUPCONFIG
cd /home/BACKUPCONFIG

#Step 3 : lakukan kompresi terhadap file yang sudah di backup
tar -czf $(date +%Y%m%d)-backup.tar.gz Gue/

#Step 4 (optional) : Hapus folder sriwijaya untuk menghemat space
rm -rf Gue

Ubah hak akses agar dapat dieksekusi:

[root@Alay ~]# chmod a+x myBackup.sh

Lakukan pengujian script :

[root@Alay ~]# ./myBackup.sh 
receiving incremental file list
created directory /home/BACKUPCONFIG/Gue
filedata/
filedata/configacl.txt
filedata/configrouter.txt
filedata/configssh.txt

sent 72 bytes  received 297 bytes  246.00 bytes/sec
total size is 63  speedup is 0.17

Apabila output seperti diatas, maka kita telah berhasil menjalankan script dengan benar, dan kita bisa memeriksanya dengan perintah:
[root@Alay ~]# ls /home/BACKUPCONFIG/
20140131-backup.tar.gz

TAHAP KETIGA, kita akan membuat system backup dengan cron:

Dari contoh kasus diatas, kita akan melakukan backup file setiap hari pada pukul 23:45. Kita akan menggunakan cron dengan perintah:
[root@Alay ~]# crontab –e

Kita masukkan script myBackup.sh kedalam cron, dengan parameter sebagai berikut:

#Backup setiap hari pukul 23:45
45 23 * * * /root/myBackup.sh

Restart service crond, dengan perintah:

[root@Alay ~]# service crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]

Sampai tahap ini, proses membangun system backup secara otomatis sudah dibuat. Jangan lupa untuk melakukan pemeriksaan terhadap file yang sudah kita backup, apakah berhasil atau tidak. Tutorial ini adalah versi otodidak dari penulis, mungkin diluar sana masih banyak berbagai cara yang lebih terstruktur dan bisa dipelajari sesuai kebutuhan kita.

Tidak ada komentar:

Posting Komentar