Цель моего скрипта - развернуть мой ключ ssh через ssh-copy-id на моем сервере 100.
Для достижения этой цели я использую 3 файла.
CreateParam
#!/bin/bash
while read line;
do
IPSrv=`echo $line | cut -d":" -f1`
Login=`echo $line | cut -d":" -f2`
Passwd=`echo $line | cut -d":" -f3`
./deployssh.sh $IP $Login $Passwd
done < ServerList.txt
Этот скрипт позволяет мне передавать IP, Login и Passwd в качестве параметров для моего ожидаемого скрипта.
ServerList.txt
Name:@IP:RootLogin:Password
....
Этот файл содержитИмя, адрес, IP-адрес, root-логин и пароль сервера.
deployssh.sh
#!/usr/bin/expect -f
set IPSrv [lindex $argv 1]
set Login [lindex $argv 2]
set Passwd [lindex $argv 3]
spawn ssh-copy-id $IPSrv@$Login -o StrictHostKeyChecking=no
expect -re "password:"
send -- "$Passwd\r"
Предполагается, что этот сценарий ожидания развернет мои ключи ssh на всех серверах, указанных в файле ServerList.Однако на данный момент это не работает.
Мне интересно, что я делаю не так, вы можете помочь мне решить эту проблему?