457475451 发表于 2018-8-28 13:14:09

在线备份MySQL及远程copy到远程备份服务器shell脚本

  该脚本实现了以下几点功能:
  1、在线备份mysql数据库;
  2、将备份的日志存入日志文件;
  3、压缩数据备份文件;
  4、将压缩后的文件远程ftp到备份服务器;
  5、删除本地备份超过7天的数据主要是防止因备份导致生产服务器磁盘空间的非正常增长带来性能瓶颈问题。
  具体实现shell如下所示:
  #!/bin/sh
  #---------------------------------------------------------
  # scriptname: erpbackup.sh
  # version: 1.0 for linux
  # method: backup mysqldb
  # author: fengzhanhai
  # history: create program V1.1 20110429 by Fengzhanhai
  UserName='root'
  AdminPwd='passw0rd'
  DbName=erp
  BakDir=/home/imu/db-backup/***back
  LogFile=/home/imu/db-backup/***back/mysqlbak.log
  DATE=`date +%Y%m%d%H%M`
  DumpFile=***data$DATE.sql
  GZDumpFile=$DumpFile.tgz
  FtpServer=10.19.98.235
  FtpTargetPath=/erp_backup/mysql
  #main---------------------------------------------------------
  echo $(date +"%y-%m-%d %H:%M:%S") backup begin >> $LogFile
  cd $BakDir
  #备份当天文件
  /usr/local/mysql/bin/mysqldump -u$UserName -p$AdminPwd $DbName > $DumpFile
  echo $(date +"%y-%m-%d %H:%M:%S") Dump Done >> $LogFile
  #tar压缩文件
  tar czvf $GZDumpFile $DumpFile >> $LogFile
  #rm -f $DumpFile
  echo $(date +"%y-%m-%d %H:%M:%S") $GZDumpFile compress done >> $LogFile
  #上传到ftp服务器
  ftp -v -n $FtpServer > $LogFile
  rm -f $GZDumpFile
  #删除当前目录下7天前的文件备份文件
  find $BakDir -name "***data*" -mtime +7 -execrm {} \;
  echo $(date +"%y-%m-%d %H:%M:%S") delete old file done >> $LogFile
  #验证结果
  ls -al $DumpFile >> $LogFile

页: [1]
查看完整版本: 在线备份MySQL及远程copy到远程备份服务器shell脚本