建设工作站服务器
有时会批量操作服务,例如将文件批量上传到服务,安装或运行软件等
命令和
脚本、服务重新启动、服务重新启动等,人工逐台操作特别繁琐,浪费人力。
在这种情况下,可以使用expect向目标服务器发送命令以实现批量操作。
下一个例子是
将centos上的文件批量复制到其他供应商,并运行相应的文件
命令
在centos上安装执行
yuminstallexpect
创建导出
脚本copyfilebatch.sh
以下脚本将一个rc.local文件从intranet IP为192.168.0.102复制到192.168.0.112的服务器上,并在复制成功后运行chmod命令,以分别将每个服务器复制到服务器上
#! /usr/bin/expect-f
setpasswordrootpassword
for{seti102}{$i=112}{incri}{
设置和映射; #039; 192.168.0.$i&; #039;
puts&; #039; $ip&; #039;
spawn ssh-ostricthostkeychecking=no $ IP
settimeout3
expect&; #039; root@$ip&; #039; spassword:&; #039;
settimeout3
send&; #039; $password\\\\r&; #039;
settimeout3
send&; #039; exit\\\\r&; #039;
spawn scp/home/install/RC.local root @ $ IP:/etc/RC.d/RC.local
settimeout3
expect&; #039; root@$ip&; #039; spassword:&; #039;
settimeout3
send&; #039; $password\\\\r&; #039;
settimeout3
send&; #039; exit\\\\r&; #039;
spawnsshroot@$ip
expect{ (
&; #039; *是/否& amp; #039; {send&; #039; 是\\\ r & amp; #039; exp_continue}
&; #039; *password:&; #039; {send&; #039; $password\\\r&; #039; }
}
expect&; #039; #*&; #039;
#要执行的命令
send&; #039; chmodx/etc/RC.d/RC.local\\\r & amp; #039;
send&; #039; reboot\\\\r&; #039;
send&; #039; exit\\\\r&; #039;
导出
}
以上是本文的全部内容,希望对大家的学习有帮助
原文如下。
33559 www.Linux probe.com/expect-batch-command.html
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn