# cat dbback.sh mysql
#!/bin/bash linux
#This mysql backup script for dailysql
#environment:linux數據庫
#定義要備份的數據庫名bash
dbname=testide
#定義備份數據庫時使用的用戶名和密碼函數
dbuser=root日誌
dbpasswd=123456ip
dbhost=localhostit
#數據庫備份的路徑
backuppath=/opt/dbbak/
#數據庫備份日誌文件存儲的路徑
logfile=/opt/dbbak/db.log
#以當前的時間做爲備份的數據庫命名。
dumpfile=${dbname}$(date +%y%m%d%H%M)
#這個函數用來備份數據庫
back_db()
{
#將備份的時間、數據庫名存入日誌
echo $(date +%y%m%d%H%M)" Beginning database "${dbname}" backup-----------------------------------" >>${logfile}
#備份數據庫,若是有錯誤信息也記入日誌。
mysqldump -h${dbhost} -u${dbuser} --default-character-set=utf8 -p${dbpasswd} ${dbname} >${backuppath}${dumpfile}.sql 2>> ${logfile}
#將備份數據庫文件庫壓成ZIP文件,並刪除先前的SQL文件。若是有錯誤信息也記入日誌。
tar zcvf ${dumpfile}.tar.gz ${dumpfile}.sql && rm ${dumpfile}.sql 2>> ${logfile}
#將壓縮後的文件名存入日誌。
echo "backup file name:"$(date +%y%m%d%H%M)".tar.gz" >>${logfile}
echo -e "------------------------------\n" >>${logfile}
}
#這個函數用來刪除七天前的數據,注意,這個腳本會刪除當前目錄下全部的早於七天前的文件,若是把目錄搞錯了。。。。。。。。。
#rm_oldfile()
#{
# #查找出當前目錄下七天前生成的文件,並將之刪除
# find ./ -type f -mtime +7 -exec rm {} \;
#}
#
#切換到數據庫備份的目錄。若是不作這個操做,壓縮文件時有可能會錯誤
cd ${backuppath}
#運行備份數據函數
back_db
#運行刪除文件函數
#rm_oldfile