shell中expect的初步使用

想用rsync同步两个服务器的日志,但是又不想弄密钥做验证 于是想到直接用shell自动输入账号密码来连接另一台服务器

脚本第一行#!/usr/bin/expect

表示使用expect进行处理

脚本本身需要赋予执行权限才可以执行expect

chmod 777 expectTest.sh

然后才能通过./expectTest.sh执行


通过  expect "需要检测的控制台内容" 

来决定控制台输出指定内容之后进行下一步处理

例:

spawn rsync -vazu  root@localhost:/data/server_2/log/  /data/test/server_2
expect "*assword:*"
send "123123\n"
expect eof

expect是开了一个子进程,通过spawn来执行shell脚本,监测到脚本的返回结果,通过expect判断要进行的交互输入内容(send)


比如 spawn rsync -vazu  root@xxx.xx.xx.xx.....


浪费了一个小时才发现,看来expect要用得6还需要认真学学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值