这个脚本也是根据一个网友写的脚本改进的,可以支持多个数据库同时备份,并自动删除5天前的备份。在linux中可以用crontab定时执行,如果配合ossync可以将数据库也自动同步到阿里云,这样文件和数据库都有了备份,安全系数大大增加了。
#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Setting
DBUser=username
DBPasswd=passwd
BackupPath=/home/backupdb/
LogFile=/home/backupdb/db.log
#Setting End
backup_db(){
local DBName=$1
local NewFile="$BackupPath"$(date %Y%m%d)$DBName.tgz
local DumpFile="$BackupPath"$(date %Y%m%d)$DBName.sql
local OldFile="$BackupPath"$(date %Y%m%d --date='5 days ago')$DBName.tgz
echo "-------------------------------------------" >> $LogFile
echo "-------------------------------------------" >> $LogFile
echo $(date "%Y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]; then
rm -f $OldFile >> $LogFile 2>&1
echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
echo "[$OldFile]No Old Backup File!" >> $LogFile
fi
if [ -f $NewFile ]; then
echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile
else
if [ -z $DBPasswd ]; then
/usr/bin/mysqldump -u $DBUser $DBName > $DumpFile
else
/usr/bin/mysqldump -u $DBUser -p$DBPasswd $DBName > $DumpFile
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
fi
}
backup_db db1
backup_db db2
backup_db db3
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。