txt 파일에서 bash 루프를 사용하여 여러 컴퓨터를 다시 시작하는 방법

txt 파일에서 bash 루프를 사용하여 여러 컴퓨터를 다시 시작하는 방법

단 한 줄의 bash 코드(자체 반복)로 컴퓨터를 다시 시작하는 방법을 아는 사람이 있습니까? 세부 정보는 텍스트 파일, 즉 각 컴퓨터의 IP 주소에서 가져옵니다. 스크립트가 컴퓨터의 IP 주소를 얻으면 들어가서 컴퓨터를 재부팅합니다. 나는 무엇을 해야 합니까?

답변1

옵션 1# for 루프 사용

for host in $(< inputfile.txt );
do 

    ssh $host shutdown -r now 

done

옵션 2# xargs 사용

xargs -n1 -I{} echo ssh {} shutdown -r now  < inputfile.txt

참고: 다음이 필요합니다.SSH 비밀번호 없는 로그인또는 입력 파일에 나열된 각 호스트의 비밀번호를 묻습니다.

답변2

#!/usr/bin/env bash

for SERVER in `cat servers.lst`
do
 ssh -tttq -o StrictHostKeyChecking=no -o CheckHostIP=no -o ConnectTimeout=5  $SERVER "sudo su -c 'uname -n;uptime;reboot' "
done

관련 정보