This is a script that I wrote to automatically back up MYSQL. It can back up all databases in MYSQL.
#! /Bin/bash
Umask 177
MUSER = "userid"
MPASS = "password"
MHOST = "localhost"
MYSQL = "$ (which mysql )"
MYSQLDUMP = "$ (which mysqldump )"
PARAMS = "-- hex-blob -- skip-extended-insert -- password = $ MPASS"
DATE = "$ (date + % F )"
BACKUPDIR = "/home/$ {MUSER}/BACKUP/$ DATE /"
RMDATE = "$ (date-d" 1 week ago "+ % F )"
RMDIR = "/home/$ {MUSER}/BACKUP/$ RMDATE"
BACKUPLOG = "/home/$ {MUSER}/BACKUP/backup. log"
If [! -F $ BACKUPLOG]; then
Touch $ BACKUPLOG
Chmod 600 $ BACKUPLOG
Fi
If [-d $ RMDIR]; then
Rm-rf $ RMDIR
Echo "Backup DELETED from" $ RMDATE >>$ BACKUPLOG
Fi
If [! -D $ BACKUPDIR]; then
Mkdir-m 700-p $ BACKUPDIR
Fi
Echo "Backup BEGINNING" $ DATE >>$ BACKUPLOG
DBS = "$ ($ MYSQL-h $ MHOST-u $ MUSER-p $ MPASS-Bse 'show databases ')"
For db in $ DBS
Do
$ MYSQLDUMP $ PARAMS $ db> $ BACKUPDIR $ db. SQL & bzip2 -- best $ BACKUPDIR $ db. SQL
Done
Echo "Backup COMPLETED" $ DATE >>$ BACKUPLOG
In addition, you can use CRONJOB for Scheduled backup.
Author eimhee