当前位置:   article > 正文

MYSQL shell 脚本备份,expect 异地灾备sql文件_shell里面使用spawn mysql

shell里面使用spawn mysql

vim ./db-backup.sh

添加如下内容:

  1. #!/bin/bash
  2. echo '开始备份数据'
  3. # 定义 MySQL 容器名称和备份目录
  4. MYSQL_CONTAINER="my-mysql"
  5. BACKUP_DIR="/home/backup"
  6. if [ -d ${BACKUP_FILE} ]; then
  7. echo "目录存在"
  8. else
  9. echo "目录不存在"
  10. mkdir ${BACKUP_FILE}
  11. fi
  12. # 定义 MySQL 容器中的数据库用户名、密码和备份文件名
  13. MYSQL_USER="root"
  14. MYSQL_PASSWORD="password"
  15. BACKUP_FILE="${BACKUP_DIR}/db_backup_$(date +%Y%m%d%H%M%S).sql"
  16. # 执行备份命令
  17. docker exec ${MYSQL_CONTAINER} mysqldump --default-character-set=utf8mb4 --single-transaction -u ${MYSQL_USER} -p${MYSQL_PASSWORD} --all-databases > ${BACKUP_FILE}
  18. # 检查备份是否成功
  19. if [ $? -eq 0 ]; then
  20. echo "MySQL 数据库备份成功:${BACKUP_FILE}"
  21. else
  22. echo "MySQL 数据库备份失败"
  23. fi
  24. # 删除14天前的备份文件
  25. count=$(find ${BACKUP_DIR} -type f -name "*.sql" | wc -l)
  26. echo "sql文件数="$count
  27. #
  28. if [ "$count" -gt 19 ]; then
  29. echo "大了,删除多余文件"
  30. find ${BACKUP_DIR} -type f -name "*.sql" -mtime +14 -delete
  31. else
  32. echo "小了"
  33. fi
  34. # -mtime +14 (14天之前)
  35. # -mmin +14 (14分钟之前)
  36. ## 异地灾备
  37. expect <<EOF
  38. spawn scp ${BACKUP_FILE} root@192.168.31.167:/home/mysql/
  39. expect "*password"
  40. send "123456\r"
  41. expect eof
  42. EOF
  43. # 安装 expect (yum install expect)
  44. # 离线包 系统=centos7.9
  45. #( expect-5.45-14.el7_1.x86_64.rpm tcl-8.5.13-8.el7.x86_64.rpm )
  46. echo '完成备份'

执行:  sh db-backup.sh

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/666030
推荐阅读
相关标签
  

闽ICP备14008679号