Membuat Backup Blog dengan rsync

Saya spill ya bro, bahwa mainan Server Linux, walaupun kita tempatkan di server kacang STB HG680P, tapi memberikan pengalaman yang sangat kaya.

Setelah membuat blog, mengonlinekannya di dunia maya, maka yang perlu anda lakukan adalah backup.

Bagaimana jika suatu saat disk systemmu corupt? Atau systemmu crash? maka apa yang kamu buat menjadi sia-sia. Data sekian lama akan hilang.

Ya, saya akan membuat backup untuk blog ini. Blog ini berada pada Disk A (yg sebenarnya hanya berupa sdcard) dan akan saya copy di Disk B ( yg berupa HDD 2.5)

Saya menggunakan rsync untuk membackup file karena rsync bisa menyelaraskan 2 folder. Sedangkan databasenya dibackup menggunakan mysqldump

#!/bin/bash

# mensinkronkan folder-folder
rsync -avz /var/www/domain.com/ /backup/domain.com/www --delete

#membackup database mysql
mysqldump -uwordpress -prahasia wordpress | gzip > /backup/domain.com/database/wordpress-$(date +%d%m%Y).sql.gz

dengan penjelasan sbb:

  1. rsync -avz /var/www/domain.com/ /backup/domain.com/www --delete:
    • Perintah rsync digunakan untuk menyalin dan mensinkronkan file dan direktori antara dua lokasi.
    • Dalam kasus ini, perintah ini menyalin isi dari direktori /var/www/domain.com/ ke direktori tujuan /backup/domain.com/www.
    • Opsi -avz menentukan:
      • -a: Mode arsip, mempertahankan atribut file seperti izin dan tanda waktu.
      • -v: Menampilkan output secara terperinci.
      • -z: Mengaktifkan kompresi selama transfer.
    • Opsi --delete menginstruksikan rsync untuk menghapus file di direktori tujuan yang tidak ada di direktori sumber, sehingga menjaga agar direktori tujuan selalu sama dengan direktori sumber.
  2. mysqldump -uwordpress -prahasia wordpress | gzip > /backup/domain.com/database/wordpress-$(date +%d%m%Y).sql.gz:
    • Perintah mysqldump digunakan untuk membuat salinan dari database MySQL.
    • Dalam kasus ini, perintah ini menciptakan salinan database WordPress.
    • -uwordpress -prahasia adalah opsi untuk menentukan pengguna dan kata sandi yang digunakan untuk mengakses database MySQL. Di sini, pengguna adalah ‘wordpress’ dan kata sandinya adalah ‘rahasia’.
    • wordpress adalah nama database yang akan disalin.
    • Output dari mysqldump kemudian diteruskan ke perintah gzip untuk mengompresinya.
    • Hasil dari kompresi tersebut disimpan di /backup/domain.com/database/ dengan nama file wordpress-$(date +%d%m%Y).sql.gz, di mana bagian $(date +%d%m%Y) digunakan untuk menambahkan tanggal saat ini ke nama file dalam format “DDMMYYYY”.

Apabila backup kamu tempatkan di server berbada maka kamu bisa menggunakan perintah sbb:

#!/bin/bash

# Menjalankan rsync untuk menyalin file dari /var/www/domain.com/ ke server tujuan
rsync -avz /var/www/domain.com/ user@serverB:/backup/domain.com/www --delete

# Menjalankan mysqldump untuk membuat salinan database dan menyimpannya dalam file lokal
mysqldump -uwordpress -prahasia wordpress | gzip > /backup/domain.com/database/wordpress-$(date +%d%m%Y).sql.gz

# Mentransfer file database ke server tujuan menggunakan scp
scp /backup/domain.com/database/wordpress-$(date +%Y%m%d).sql.gz user@serverB:/backup/domain.com/database/

Kalau sudah selesai kita tinggal melakukan crontab setiap jam 12 malam. lakukan perintah sudo crontab -e.

Lalu masukkan skrip dibawah

0 0 * * * /bin/bash /backup/backup.sh

Ok Enjoy backup 🙂