远程更改主机名

需要建立2.txt一列为主机名 一列为ip

#!/bin/bash
while read IP ;do
host_pass="Eastcom@!@#"
#expect &> /dev/null <<EOF #或者expect <<EOF &> /dev/null
#set timeout 20
#spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$IP
#expect {
#"yes/no" { send "yes\n";exp_continue }
#"password" { send "$PASS\n" }
#}
#expect eof
#EOF
#ssh root@$IP /bin/bash < key2.sh 
B=`echo $IP | awk {'print $1'}`
A=`echo $IP | awk {'print $2'}`
/usr/bin/expect <<-EOF
set timeout 7
spawn ssh -p22088 sms@$A
expect {
"yes/no" { send "yes\n";exp_continue}
"sms@${A}" { send "${host_pass}\n"}
}
expect "*$" 
send "su\r"
expect  "password:" 
send "Eastcomnfv@2018\r"
send "\r"
expect "*#"
send "hostnamectl set-hostname $B\r"
send "exit\r"
expect eof
EOF

done < 2.txt

posted @ 2023-04-13 12:21  recvfrom  阅读(56)  评论(0)    收藏  举报