284354749 发表于 2018-10-22 08:14:29

mysql备份数据库,导入数据sql

  #!/bin/bash
  #scripts :yzg
  #set -x
  sql=/home/scripts
  dbuser=root
  dbpasswd=yzg1314520
  nowtime=$(date +%Y%m%d%H%M)
  serverlist=`cat /home/serverlist | awk'{print $2}'`
  if [ -d $sql/$P/mysqlbak ];
  then
  echo "Directory exist"
  else
  echo "not is a Directory,please mkdir Directory"
  mkdir $sql/$P/mysqlbak
  if [ $? == 0 ] && [ -d $sql/$P/mysqlbak ];
  then
  echo "create Directory success"
  fi
  fi
  sql_tar_export()
  {
  cd $sql/$P/mysqlbak
  mysqldump -u$dbuser -p$dbpasswd $dbname -R test_1 > $nowtime.test_1.sql
  tar -zcf $nowtime.test_1.Full.tar.gz $nowtime.test_1.sql
  rm -rf $nowtime.test_1.sql
  find $sql/$P/mysqlbak -name "*.test_1.Full.tar.gz" -mtime +1 -exec rm -rf {} \;
  if [ "$?" == "0" ];
  then
  echo "已经正确备份,并删掉已解压的sql"
  fi
  }
  sql_tar_input()
  {
  cd $sql/$P/mysqlbak
  mysql -u$dbroot -p$dbpasswd -e 'drop database test_1'
  mysql -u$dbroot -p$dbpasswd -e 'create database test_1'
  if [ -a $sql/$port/mysqlbak/*.sql ];
  then
  mv$sql/$port/mysqlbak/*.sql /tmp
  db_sql=`ls -tr /home/scripts/$P/mysqlbak/|tail -n 1`
  tar -xf ${db_sql}-C $sql/$P/mysqlbak/
  newname=`echo ${db_sql} | awk -F "." '{print $1"."$2}'`.sql
  echo $newname
  mysql-u$dbuser -p$dbpasswd test_1 < $newname
  fi
  if [ "$?" == "0" ];
  then
  echo "正确导入sql"
  fi
  }
  case "$1" in
  8|all)
  ;;
  *)
  echo "请输入正确数字"
  exit 0
  ;;
  esac
  case "$2" in
  export|input)
  ;;
  *)
  echo "请输入正确字符"
  exit 0
  ;;
  esac
  port=$1
  if [ "$port"!= "all" ] && [ "$2" == "export" ];
  then
  cd $sql/$port/mysqlbak
  mysqldump -u$dbuser -p$dbpasswd $dbname -R test_1 > $nowtime.test_1.sql
  tar -zcf $nowtime.test_1.Full.tar.gz $nowtime.test_1.sql
  rm -rf $nowtime.test_1.sql
  find $sql/$P/mysqlbak -name "*.test_1.Full.tar.gz" -mtime +1 -exec rm -rf {} \;
  if [ "$?" == "0" ];
  then
  echo "已经正确备份,并删掉已解压的sql"
  fi
  elif [ "$port" != "all" ] && [ "$2" == "input" ];
  then
  cd $sql/$port/mysqlbak
  mysql -u$dbroot -p$dbpasswd -e 'drop database test_1'
  mysql -u$dbroot -p$dbpasswd -e 'create database test_1'
  if [ -a $sql/$port/mysqlbak/*.sql ];
  then
  mv$sql/$port/mysqlbak/*.sql /tmp
  fi
  db_sql=`ls -tr /home/scripts/$port/mysqlbak/|tail -n 1`
  tar -xf ${db_sql}-C $sql/$port/mysqlbak/
  newname=`echo ${db_sql} | awk -F "." '{print $1"."$2}'`.sql
  echo $newname
  mysql-u$dbuser -p$dbpasswd test_1 < $newname
  if [ "$?" == "0" ];
  then
  echo "已经正确导入sql到数据库"
  else
  echo "导入失败,检查原因"
  fi
  else [ "$port" == "all" ] && [ "$2" == "export" ] || [ "$2" == "input" ]
  for P in $serverlist
  do
  cd $sql/$P/mysqlbak
  case "$2" in
  export)
  sql_tar_export
  ;;
  input)
  sql_tar_input
  ;;
  esac
  done
  fi
  exit 0
  #set +x

页: [1]
查看完整版本: mysql备份数据库,导入数据sql