Hai Semua,
Tulisan ini membahas tentang melakukan backup harian secara manual di Server Cpanel.Kita tahu bahwa Server Cpanel melakukan Backup dengan 3 Periode :
Daily=harian
Weekly=Mingguan
Monthly=Bulanan
Sehingga ada 3 backup yang tersedia dan dapat kita download langsung dari cpanel.
Dalam Kasus ini, Kita menginginkan agar setiap hari melakukan backup, sehingga perharinya ada backup dan secara automatis berpindah ke folder harian, mingguan atau bulanan.
Backup data dilakukan menggunakan Rsync
Sedangkan backup Database menggunakan Mysqldump
Script Bash
https://github.com/uiaciel/kode-kode/blob/master/backup-manual.shNama File backup-manual.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Move Backup Public_html dan Database Harian | |
# First Source : https://nicaw.wordpress.com/2013/04/18/bash-backup-rotation-script/ | |
# Bash Script untuk backup harian, mingguan dan bulanan | |
# Bash Script for backup Manually Cpanel Account daily and move to Weekly, Monthly Folder | |
# Please Check again, Thanks you | |
# Step 1 | |
BACKUP_DIR=/home/backup | |
FILES_DIR=/home/USER/public_html | |
# Dump MySQL Database | |
mysqldump -pPASSWORD -uUSER DATABASENAME > $BACKUP_DIR/incoming/`date +%Y_%m_%d`.sql | |
# Rsync folder public_html | |
rsync -az /home/USER/public_html/ $BACKUP_DIR/incoming/`date +%Y_%m_%d` | |
# Step 2 | |
cd $BACKUP_DIR | |
# Folder Saat backup Awal | |
source=$BACKUP_DIR/incoming | |
# Nama Folder berdasarkan tanggal | |
date_daily=`date +"%d-%m-%Y"` | |
# Penamaan untuk Mingguan dan bulanan | |
mingguan=`date +"%d-%m-%Y" -d "1 week ago"` | |
bulanan=`date +"%d-%m-%Y" -d "1 month ago"` | |
# Jika Nama Folder Backup sama dengan tanggal bulanan/mingguan/harian, pindahkan ke Folder masing-masing | |
# Menjadikan Destination | |
# Bulanan | |
if [ "$bulanan" = "$date_daily" ] ; then | |
destination=/home/backup/bulanan/ | |
else | |
# Mingguan | |
if [ "$mingguan" = "$date_daily" ] ; then | |
destination=/home/backup/mingguan/ | |
else | |
# Jika Bukan Bulanan atau Mingguan, pindah ke harian | |
destination=/home/backup/harian/ | |
fi | |
fi | |
# Step 3 | |
# Pindahkan File atau Folder | |
mkdir $destination | |
mv -v $source/* $destination | |
# Hapus Data yang 6 hari lalu | |
rm -rf /home/backup/harian/`date +"%d-%m-%Y" -d "6 day ago"` | |
# Hapus Data 5 Minggu lalu | |
rm -rf /home/backup/mingguan/`date +"%d-%m-%Y" -d "5 week ago"` | |
# Hapus Data 4 Bulan Lalu | |
rm -rf /home/backup/mingguan/`date +"%d-%m-%Y" -d "4 month ago"` |
Proses backup menjalankan rsync dan mysqldump, silahkan sesuaikan User Cpanel dan Database User, Database Password dan Database Name.
Backup Tersimpan di Folder dengan nama Folder dan File menggunakan Tanggal
/home/backup/incoming
Setelah tersimpan di Folder sementara (incoming), lanjut ke Step 2
Step 2 Pengecekan
Proses selanjutnya adalah pengecekan, Pada step ini akan dicek Nama Folder sesuai dengan Tanggal
Jika bulanan, maka akan dipindahkan ke Folder bulanan, Jika mingguan atau harian juga sama.
Step 3 Pemindahan dan Penghapusan data lama
Proses terakhir adalah memindahkan File / Folder backup ke Folder masing-masing.
Lalu ada Proses penghapusan Folder-folder yang sudah lama.
Note : Sebaiknya jalankan Script melalui Crontab Server untuk lebih mudah.
Silahkan dicoba script backup ini.
Karena proses backup nya banyak, maka membutuhkan space yang lebih besar.
Silahkan berikan masukan atau tanggapan tentang proses ini, kalian juga dapat berkontribusi melalui github repository untuk perbaikan script ini.
0 Komentar:
Posting Komentar