运用shell 的expect达到不同服务器之间的交互

一,export的命令详解

 expect 的核心是  spawn expect send set

spawn 调用要执行的命令
expect 等待命令提示信息的出现,也就是捕捉用户输入的提示
send 发送需要交互值,代替用户手动输入的内容
set 设置变量值
set timeout 60 60秒超时
set timeout -1 永不超时
interact 执行完成后保持交互状态。
expect eof 与spawn对应表示捕捉终端输出信息终止。

expect 脚本必须以interact或expect eof结束,一般执行自动化脚本任务通常使用expect eof

二,确认是否安装expect

#rpm  -qa  |grep  expect 
#yum  install   expect  -y                         进行安装操作

三,查看安装expect后的路径

 #which   expect
 /usr/bin/expect

四,生产环境下实例操作
(定时拷贝另一台服务器的相关软件)
#vim /home/project_backup.sh

#!/bin/sh
# project_backup
. /etc/profile                  #如不提示环境变量的问题,可以不加这两行
. ~/.bash_profile               #若提示环境变量的问题,安装环境变量后,添加该两行
dateTime=`date +%Y-%m-%d`
#name=BJDBbackup_`date +%Y-%m-%d`
expect -c "
        set timeout -1;
        spawn /usr/bin/scp -r -P 62222  /home/tmmma_bak/$dateTime.tar.gz  root@192.168.25.25:/home/tmmmabak;
        expect {
            *password: { send \密码\r\ }
               };
         expect eof;
       "

加入计划任务

 #crontab  -e   
 * 3 * * *  /home/project_backup.sh

注:使用中出现的问题
1)运行交互脚本时,不能执行成功
查看环境变量的问题,安装环境变量后,进行添加
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值