脚本示例
1 | #!/usr/bin/expect |
- 第1行:#!/usr/bin/expect 是告诉系统在执行这个脚本的时候用哪个命令来执行,这边是用expect,是一个类似bash和sh的shell。
- 第2行 set timeout 10 设置超时时间为10s。
- 第3行 set password 123456 定义了一个变量 password,这个变量记录了登陆远程服务器的密码。
- 第4行 spawn ssh ubuntu@xxx.xxx.xxx.xxx 调用 spawn 命令来执行一个系统命令。spawn是expect shell的内建命令,只有在expect环境下才可以使用。这行代码的功能就是通过ssh连接远程ECS。
- 5~10行 行用了一个 expect 命令,可以将这个命令理解为期待shell中输出结果中包含什么关键字。
如果包含的是 password: 则表示不是第一次连接这个远程服务器,直接用send输出密码即可。
传送文件
- 将本地文件复制到远程: scp {local txt} {userName}@{ip}:/{txt}
- 将远程文件复制到本地: scp {usreName}@{ip}:/root/{txt}