Backup Folder WWW dan DB otomatis dengan script dan cron-job di ubuntu




Disini saya akan backup www dan db ke folder nas synology Pertama2 Mounting share foldernya ke ubuntu, mount nya saya taro di folder /home/backup jadi harus buat dir /home/backup dulu mount -t cifs -o username=admin //192.168.231.50/server_apps /home/backup

kemudian install zip dan unzip

apt-get install zip

apt-get install unzip


A. Backup WWW Otomatis

1 Buat Script Backup .sh di /etc/

nano /etc/script-backup.sh

2 Copy Script ini

#!/bin/bash

#script by semoetz

#Sync otomatis backup one way dari folder /var/www/backup1 ke folder backup /home$

rsync -avzh /var/www/backup1 /home/backup

#masuk ke folder /home/backup

cd /home/backup/

#kompres hasil backup ke zip dengan nama tanggal

#(date +%Y%m%d)-backup1.zip ---> Buat nama filenya

#backup1 ---> Folder yg akan di zip

zip -r $(date +%Y%m%d)-backup1.zip backup1

#jika sudah di kompres foldernya akan di hapus agar tidak penuh

rm -rf backup1

#exit

exit 0

jika sudah dibuat, selanjutnya beri permission

chmod 777 /etc/script-backup.sh

3. Install Cronjob

apt-get install cron

4. ketik crontab -e

kemudian keluar crtl+z

kemudian masuk lagi :D

5. Masukan scrip tanggal backup dan lokasi script backup

script di atas menunjukan bahwa setiap hari senin-minggu akan di lakukan backup pada jam 17:00

Berikut untuk keterangan lebih lanjut tanggal backup

hasil backupnya akan zip seperti ini

B. Backup DB Mysql Otomatis

1. buat list database yang ingin dibackup dengan cara

mysql -u USERNAME_MYSQL -pPASSWORD_MYSQL -Bse 'show databases' > listfile.txt

File nya sudah tercreate

jika di buka akan tampil nama db kita

2. Buat Folder

mkdir /home/backup/db

 

3 Buat script .sh

nano /etc/script-backup-db.sh

copy code ini

# Lokasi Folder backup

DESTDIR="/home/backup/db"

# tanggal backup

date=$(date +"%d-%b-%Y")

# Syntax buat backup Sql

echo "Dumping SQL Databases";

cat /home/bas/listfile.txt | while read line

do

dbname=$line

if [ $line != "information_schema" ] ;

then

mysqldump --skip-add-locks -u root -pbasis12345 $dbname > /home/backup/db/$dbname.sql

fi

done

#masuk ke folder /home/backup

cd /home/backup/

#kompres hasil backup ke zip dengan nama tanggal

zip -r $(date +%Y%m%d)-db-jkt-svrbasapps.zip db

# Jika sudah di zip maka Delete isi folder db nya agar tidak penuh

rm /home/backup/db/*

exit 0

4. tambahkan di crontab -e seperti di atas

Crontab akan menjalankan backup www pada jam 1 pagi dan backup db jam 3 pagi