开发者社区> 问答> 正文

分享一个多数据库备份脚本

这个脚本也是根据一个网友写的脚本改进的,可以支持多个数据库同时备份,并自动删除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


展开
收起
lanbaba 2013-11-25 23:56:32 9545 0
1 条回答
写回答
取消 提交回答
  • 回楼主lanbaba的帖子
    要增加数据只需要在结尾增加一行:backup_db newdb即可。
    2013-11-25 23:57:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载