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  [email protected].....


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

你可能感兴趣的:(学习小记)