나는 이전에 한 번도 해본 적이 없는 일을 하고 있습니다.
여러분 중 일부에게는 쉬울 것이라고 확신합니다 :)
네트워크에서 장치에 SSH를 연결하고 15분 간격으로 재부팅하는 Linux 쉘 스크립트를 실행해야 합니다.
나는 그것이 다음과 같이 보일 것이라고 상상합니다.
#!/bin/bash
USERNAME=someUser
HOSTS="host1 host2 host3"
SCRIPT="pwd; ls"
for HOSTNAME in ${HOSTS} ; do
ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}"
done
재부팅 명령에 연결하려면 SSH 연결이 필요합니다
for p in server1 server2 server3
do
ssh ${p} sudo reboot
sleep 900
done
첫 번째 컴퓨터를 다시 시작한 후 15분 후에 연결하고 다시 시작해야 합니다.
답변1
이것은 기본적으로 귀하가 요청한 것입니다.
#!/bin/bash
for i in `cat ~/servers.txt`
do
echo -n $i" "
ssh -l sudo_user $i "sudo shutdown -r now"
sleep 900
done
절전 모드에서는 재시작이 완료된 후 15분이 아니라 마지막 주문이 이루어진 후 약 15분 후에 재시작 명령을 실행합니다. 간단한 bash 쉘을 사용하여 필요한 작업을 수행할 수 있습니다. 서버 수가 몇 개라면 Rundeck을 사용하고, 서버가 100개 이상이라면 Ansible을 사용하는 것을 선호합니다.
이 스크립트는 sudo 사용자로 실행하는 것이 가장 좋습니다. ssh를 통해서는 말할 것도 없고 루트로 관리하지 않는 것이 가장 좋습니다. 이 작업이 원활하게 작동하려면 먼저 각 서버에서 올바른 SSH RSA 키로 사용자를 채우고 이를 sudo 그룹에 추가해야 합니다.