一、遇到的问题
我们使用过mysqldump都知道,使用该命令后,需要我们手动输入 mysql的密码,那么我们就不能够直接在crontab中使用mysqldump实现周期备份。其实我们可以使用expect脚本自动输入密码,从而实现真正的周期备份。如果你不知道什么是expect,建议先请看这篇文章:https://www.jb51.net/article/197865.htm
二、思路
创建一个utils文件,里面存放shell脚本,包括mysqldump、scp等命令
使用expect脚本,执行utils内的脚本,并为其自动输入密码
最后使用驱动脚本,执行expect,在该脚本里面传入需要的参数
思路如下:
三、代码
3.1、单机冷备份
(1)mysqldump的shell脚本
backup.sh:
#!/bin/bash
mysql_username=$1
backup_databases=$2
backup_path=$3
mysqldump -u ${mysql_username} -p --databases ${backup_databases} > ${backup_path}
(2)执行mysqldump的expect脚本,能帮助我们自动输入mysql代码
<