我想ssh到服务器列表,并使用expect脚本在每个服务器上设置一个唯一的值。
示例:我有10台服务器。服务器1到10我有服务器资产标签的资产标签1到10。我想ssh到每台服务器,并更新每台服务器上的资产标签值。
谢谢,苏库马尔
这里有一个脚本可以帮助您。如您所见,这些值作为参数传递给expect代码所在的myscript.sh。
#!/bin/bash
adresses=("192.168.1.1" "192.168.1.2" "192.168.1.3" "192.168.1.4" "192.168.1.5" "192.168.1.6" "192.168.1.7")
hostnames=("ap02" "ap03" "ap04" "ap05" "ap06" "ap07" "ap08")
### Main ###
for cpt in {0..6}
do
./myscript.sh ${adresses[${cpt}]} ${hostnames[${cpt}]}
cpt=$(( $cpt +1 ))
done
以下是我如何使用myscript.sh中的参数
#!/usr/bin/expect
set ipaddr [lindex $argv 0];
set hostname [lindex $argv 1];
...
其中$argv
0是第一个自变量,$argv 1
是第二个