expect 交互式 scp 文件

为了同步文件, 本来可以做 rsync 配置的, 但是服务器太多, 有上百台服务器, 如果都一一配置, 岂不是很费事, 于是直接写个脚本, 用scp远程copy 好了,实现方式如下 :

#!/usr/bin/expect set ADDR [lindex $argv 0] set LOGIN [lindex $argv 1] set PASSWD [lindex $argv 2] set DIR [lindex $argv 3] spawn scp -rp "$DIR" "$LOGIN@$ADDR:/home/ttt" set timeout 60 expect { -re ".*es.*o.*" { exp_send "yes/r" exp_continue } -re ".*sword.*" { exp_send "$PASSWD/r" } } interact

通过sh脚本输入4个参数, $DIR 为要copy到远程服务器的目录或者文件

$LOGIN 为用户名, 通过expect 自动输入yes 和 password

执行上面这个脚本的sh脚本代码如下:

#!/bin/sh /usr/bin/expect autocopy.exp 192.168.1.11 root 123456 GNU-Linux-x86 /usr/bin/expect autocopy.exp 192.168.1.12 root 123456 GNU-Linux-x86 /usr/bin/expect autocopy.exp 192.168.1.13 root 123456 GNU-Linux-x86 /usr/bin/expect autocopy.exp 192.168.1.14 root 123456 GNU-Linux-x86

只要 execute 上面这个 sh 脚本, 就可以批量完成数据的远程copy。

是不是很方便, 很简单啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值