Linux下MySQL安裝和日常維護(3)
Mysql日常備份
下面shell指令碼迴圈備份MySQL資料庫中的所有庫,使用時根據情況調整備份目錄和mysql的root密碼,保留最近14天記錄,超過14天備份進行刪除,配置在crontab中每天23:30進行備份,備份完之後傳送成功郵件
-bash-3.2$ crontab -l
30 23 * * * sh /home/mysql/backup_script/backup_mysql.sh
-bash-3.2$ more /home/mysql/backup_script/backup_mysql.sh
#!/bin/sh
#Author : eymitwu
#Last Modified : 2012-05-18
# mysql_backup.sh: backup mysql databases and keep newest 14 days backup.
# -----------------------------
db_user="root"
db_passwd="test"
db_host="localhost"
logfile=/home/mysql/backup_script/backup.log
# the directory for story your backup file.
backup_dir="/nfsbackup/mysql"
# date format for backup file (dd-mm-yyyy)
time="$(date +"%d-%m-%Y")"
# mysql, mysqldump and some other bin's path
MYSQL="/usr/bin/mysql"
MYSQLDUMP="/usr/bin/mysqldump"
MKDIR="/bin/mkdir"
RM="/bin/rm"
MV="/bin/mv"
GZIP="/bin/gzip"
ADMIN_MAIL="eymitwu@hotmail.com "
echo ".............Backup Script. Running on $time............" >> $logfile
# check the directory for store backup is writeable
test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0
# the directory for story the newest backup
test ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/"
# get all databases
all_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')"
for db in $all_db
do
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/backup.0/$time.$db.gz"
done
# delete the oldest backup
test -d "$backup_dir/backup.14/" && $RM -rf "$backup_dir/backup.14"
# rotate backup directory
for int in 13 12 11 10 9 8 7 6 5 4 3 2 1 0
do
if(test -d "$backup_dir"/backup."$int")
then
next_int=`expr $int + 1`
$MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"
fi
done
echo ".............Backup Script. Completed,Exiting Now $time............" >> $logfile
SUBJECT="Successfully checking backup mysql log on :`hostname`"
function message {
echo -e "Today's $time checking of backup log has been done \n"
echo -e " See /home/mysql/backup_script/backup.log for more information! \n"
}
message|mail -s "$SUBJECT" "$ADMIN_MAIL"
exit 0;
-bash-3.2$
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21605631/viewspace-742269/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下MySQL安裝和日常維護(1)LinuxMySql
- Linux下MySQL安裝和日常維護(2)LinuxMySql
- Postgresql日常運維-安裝(Linux)01SQL運維Linux
- MYSQL 安裝維護注意事項MySql
- Linux DNS 伺服器安裝、配置和維護LinuxDNS伺服器
- linux中oracle的日常維護命令LinuxOracle
- MySQL-01.Linux下MySQL安裝和使用MySqlLinux
- MongoDB日常運維-02安裝MongoDB運維
- Oracle RAC 日常維護Oracle
- RAC日常維護命令
- PG日常維護(一)
- Linux下安裝、解除安裝mysqlLinuxMySql
- MS SQL 日常維護管理常用指令碼(下)SQL指令碼
- mysql linux下安裝MySqlLinux
- Linux下Mysql安裝LinuxMySql
- linux 下安裝mysqlLinuxMySql
- linux下安裝MysqlLinuxMySql
- 【MySQL安裝】Linux下安裝MySQL(預編譯)MySqlLinux編譯
- [linux]linux下安裝mysqlLinuxMySql
- Postgresql日常運維-安裝(Windows)02SQL運維Windows
- Oracle OGG日常維護Oracle
- Gerrit日常維護記錄
- 【MHA】mha日常維護命令
- DBA日常維護SQL整理SQL
- DataGuard 日常維護命令整理
- 針對oracle日常維護Oracle
- Linux下安裝MySQL 5.7LinuxMySql
- Linux 下 docker 安裝 MySQLLinuxDockerMySql
- Linux下安裝使用MySQLLinuxMySql
- Linux下解除安裝MySQLLinuxMySql
- linux下mysql解除安裝LinuxMySql
- 在linux下安裝mysqlLinuxMySql
- 【OEM】OEM安裝維護
- 【Mysql】Windows下安裝和配置MysqlMySqlWindows
- Oracle ERP系統日常維護和巡檢Oracle
- rac叢集日常維護命令
- ORACLE DG 日常維護常用SQLOracleSQL
- DBA日常維護SQL指令碼SQL指令碼