키 푸시 스크립트, 호스트 이름 대량 수정
스크립트 작성:
1. ssh-key 기반 생산 비밀 키
2. ssh를 바탕으로 다른 노드와 첫 번째 상호작용을 완성(yes/no)
3. ssh-copy-id 기반 원격 대량 전송 키 구현
4. sed를 바탕으로 서로 다른 집단의 다른 호스트 이름을 수정한다
테스트 환경:
호스트 이름
IP
[root@node1 ~]#
10.10.73.148
[root@node2 ~]#
10.10.73.149
[root@node3 ~]#
10.10.73.192
1. 10.10.73.148(node1) 노드를 비밀 키 노드로 만들어서 node2, node3에게 보내고 호스트 이름을 수정합니다!
[root@node1 ~]# vim /tmp/lweim.sh
#!/bin/bash
#Version:1.0
#Author:wtc
#Use:Change Hostname
ip="148 149 192"
key=umpay.com
main() {
if ! 'rpm -q expect' &> /dev/null;then
yum install expect -y &> /dev/null
[[ $? -eq 0 ]] && echo "Install Success" || echo "Install Faile"
[ -a /root/.ssh/id_rsa ] && rm -rf /root/.ssh/*
Create_Key
for n in $ip;do
for i in 10.10.73.$n;do
First_HandShake
Push_Key
done
done
else
exit 1
fi
}
Create_Key() {
echo "Creating RSA Key ...."
`which expect` < /dev/null
set timeout 60
spawn ssh-keygen
expect "save"
send "\r"
expect "passparase"
send "\r"
expect "again"
send "\r"
expect eof
END
[[ $? -eq 0 ]] && echo "Creating RSA Success" || echo "Create RSA Key Faile"
}
First_HandShake() {
echo "First HandShake with $ip"
`which expect` < /dev/null
set timeout 5
spawn ssh $i
expect "(yes/no)"
send "yes\r"
expect eof
END
[[ $? -eq 0 ]] && echo "First HandShake with $i Success" || echo "First HandShake with $i Faile"
}
Push_Key() {
echo "Push RSA Key to $i"
`which expect` < /dev/null
set timeout 60
spawn ssh-copy-id $i
expect "password"
send "$key\r"
expect eof
END
[[ $? -eq 0 ]] && echo "Push Key to $i Success" || echo "Push Key to $i Faile"
}
main
##############[ "node1"、"node2" "mysql_01"、"mysql_02" ]##############
ip="148 149"
declare -x x=1
for n in $ip;do
for i in 10.10.73.$n;do
ssh $i "sed -i s/^HOST.*/HOSTNAME=mysql_0$x/ /etc/sysconfig/network"
let x++
done
done
##############[ "node3" "umpay_01"] ##############
ip="192"
declare -x x=1
for n in $ip;do
for i in 10.10.73.$n;do
ssh $i "sed -i s/^HOSTNAME.*/HOSTNAME=umpay_0$x/ /etc/sysconfig/network"
let x++
done
done
테스트 결과:
[root@node1 tmp]# bash -x lweim.sh
호스트 이름
IP
[root@mysql_01 ~]#
10.10.73.148
[root@mysql_02 ~]#
10.10.73.149
[root@umpay_01 ~]#
10.10.73.192
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ActiveDirectory에 PowerShell로 사용자 일괄 등록사용자 계정 정보가 포함 된 CSV 파일을 준비하고 Active Directory에 일괄 등록하는 스크립트를 만듭니다. 1 행째를 헤더로 한 다음과 같은 CSV 파일을 입력 가능하고 임의로 열을 추가할 수 있다고 한...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.