项目需要每天三点下载远程数据库备份的压缩sql文件到本地,并在本地执行这个sql文件
#!/bin/bash
#ip
ip=IP
#主机地址
port=端口
#用户名
user=用户名
#密码
psd=密码
#当前时间年月日
dd=`date +%Y%m%d`
# dd=2019110303
#远程文件地址
serverdir=/data/mysqlbackup
#本地下载地址
clienterdir=/usr/local/sh/mysqlbackup
#选择数据库
database_name=test
# #复制文件到本地
expect -c "
set timeout 3600
spawn scp ${user}@${ip}:${serverdir}/maohe_db.dump.${dd}.sql.gz ${clienterdir}/maohe_db.dump.${dd}.sql.gz
expect \"password:\"
send \"${psd}\r\"
expect eof
"
#解压文件
gunzip ${clienterdir}/maohe_db.dump.${dd}.sql.gz
#执行sql
/usr/local/mysql/bin/mysql -h 192.168.1.246 -uroot -proot -e "
use ${database_name};
source ${clienterdir}/maohe_db.dump.${dd}.sql;
notee
quit";
注意:windows下编辑代码有可能因为编码问题出现脚本变量自带空格的问题,解决方法在vim编辑器下重新写一下就好了