天堂1111 发表于 2018-8-28 11:27:31

shell脚本如何批量备份数据库

  vim backup_db
  #!/bin/bash
  mysql_host="192.168.1.12"
  mysql_user="sige"
  mysql_passwd="Sige123"
  date=$(date +%Y-%m-%d)
  bak=/data/backup/
  #备份的数据库数组
  db_arr=$(echo "show databases;" | mysql -u$mysql_user -p$mysql_passwd -h$mysql_host)
  #不需要备份的单例数据库
  nodeldb1="performance_schema"
  nodeldb2="Database"
  nodeldb3="information_schema"
  nodeldb4="mysql"
  #进入到备份目录
  cd $bak
  #循环备份
  for dbname in ${db_arr}
  do
  if [ $dbname != $nodeldb1 -a $dbname != $nodeldb2 -a $dbname != $nodeldb3 -a $dbname != $nodeldb4 ]; then
  sqlfile=$dbname-$date".sql"
  mysqldump -u$mysql_user -p$mysql_passwd -h$mysql_host--default-character-set=utf8 $dbname >$sqlfile
  fi
  done
  #tar打包所有的sql文件
  tar -zcf$sqlfile.tar.gz   $sqlfile
  rm -f$sqlfile
  find . -type f -mtime +5 | grep -v backup_db | xargs rm -rf
  find . -type f -size 0c | xargs rm -rf

页: [1]
查看完整版本: shell脚本如何批量备份数据库