-
19
Apr
Sebagai Admin sebuah server sudah sewajarnya jika kita membuat backup database yang ada di server kita secara automatis. Untuk ini berikut akan saya sampaikan cara untuk membuat script backup MySQL secara automatis dengan operating system under linux dan langsung mengirimkannya ke sever backup dengan metode ftp.
1. Buat dahulu sebuah file applikasi yang dapat kita eksekusi.
[root@maulana]#touch /home/Maulana/mysql_backup.sh
2. Buka file tersebut dan isikan dengan script dibawah ini.
[root@maulana]#vim /home/Maulana/mysql_backup.sh
######################### ######TO BE MODIFIED##### ### System Setup ### BACKUP=/home/Maulana/backup/mysql ### MySQL Setup ### MUSER="root" #MySQL User MPASS="" #MySQL Password MHOST="localhost" #MySQL Host ### FTP server Setup ### FTPD="/mysql" #FTP Direktori FTPU="mysql" #FTP User FTPP="12345" #FTP Password FTPS="192.168.5.4" #FTP Server ######DO NOT MAKE MODIFICATION BELOW##### ######################################### ### Binaries ### TAR="$(which tar)" GZIP="$(which gzip)" FTP="$(which ftp)" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" ### Today + hour in 24h format ### waktu="$(date +%d%m%Y)" jam="$(date +%H%M%S)" #NOW=$(date +"%d%H") NOW="ALL_DATABASES.$waktu$jam" ### Create hourly dir ### if [ -d $BACKUP/$NOW ]; then echo Direktori sudah ada, proses akan dilanjutkan else echo Direktori backup belum dibuat, proses akan dilanjutkan fi mkdir -p $BACKUP/$NOW ### Get all databases name ### DBS="$($MYSQL –user=$MUSER -h $MHOST –password=$MPASS -Bse 'show databases')" for db in $DBS do ## Create dir for each databases, backup tables in individual files ## mkdir -p $BACKUP/$NOW/$db # for i in 'echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_'; # do #FILE=$BACKUP/$NOW/$db/$i.sql.gz #echo $i; $MYSQLDUMP –add-drop-table –allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE FILE=$BACKUP/$NOW/$db/$db.sql.gz $MYSQLDUMP –add-drop-table –allow-keywords -q -c –user=$MUSER -h $MHOST –password=$MPASS $db | $GZIP -9 > $FILE done #done ### Compress all tables in one nice file to upload ### ARCHIVE=$BACKUP/$NOW.tar.gz ARCHIVED=$BACKUP/$NOW $TAR -cvf $ARCHIVE $ARCHIVED ### Dump backup using FTP ### cd $BACKUP DUMPFILE=$NOW.tar.gz $FTP -n $FTPS quote PASS $FTPP mkdir $waktu cd $FTPD/$waktu mput $DUMPFILE disconnect close END_SCRIPT ### Delete the backup dir and keep archive ### rm -rf $ARCHIVED #End Script
3. Edit script ini sesuai konfigurasi database dan ftp server anda.
MUSER, MPASS, MHOST, FTPD, FTPU, FTPP dan FTPS.
Setelah selesai kita membuat file diatas maka tekan Esc + : x, lalu jangan lupa set chmod 700 di file mysqlbackup.sh
[root@maulana]#chmod 700 /home/Maulana/mysql_backup.sh
Untuk mengeksekusi file tersebut pada waktu-waktu tertentu, maka yang perlu kita lakukan adalah mengkonfigurasi crontab, berikut langkah-langkahnya:
[root@maulana]# crontab -e
Tambahkan :
44 12 * * * /home/Maulana/mysql_backup.sh
Keterangan:
44 yaitu setiap menit ke 44
12 yaitu setiap jam 12
maka backup akan terjadi setiap hari pada pukul 12:44 siang
Hasil dari sistem ini adalah :
- File akan terbackup di folder /home/Maulana/backup/mysql/ dan file hanya 1 per nama.
- File sudah di comprese dengan *.gz
- Published by admin in: Database
- If you like this blog please take a second from your precious time and subscribe to my rss feed!