Sleep 명령과 함께 Echo 명령 사용

Sleep 명령과 함께 Echo 명령 사용

그래서 몇 주 전에 여기에 질문을 올렸는데 받은 답변이 도움이 되었지만, 더 나은 답변을 얻으려면 몇 가지 정보를 추가해야겠다는 생각이 들었습니다.

내가 사용하는 컴퓨터 시스템에는 각 서버에 16개의 노드가 있는 8개의 서버(4개의 기본, 4개의 대기)가 있습니다(각 서버에 4개의 노드가 있고 각 대기에 동일한 노드가 있음). 서버가 온라인 상태가 될 때까지 노드를 로드할 수 없습니다. 그래서 저는 두 줄을 서로 연결하는 방법을 알아낼 때까지 두 줄의 별도 코드를 작성해 왔습니다.

for i in `echo server1; echo server2; echo server 3; echo server4; echo server5; echo server6; echo server7; echo server8`; do
echo $i
/remcmd $i username password 'superuser /reboot'
echo
done

그럼 내 두 번째 명령은

for i in `echo node1; echo node2; echo node3; echo node4; echo node5; echo node6; echo node7; echo node8; echo node9; echo node10; echo node11; echo node12; echo node13; echo node14; echo node15; echo node16
/remcmd $i username password 'superuser /reboot'

서버를 다시 시작한 후 9분을 기다린 후 노드를 다시 시작하는 방법이 있습니까? 배관을 시도했지만 조사를 좀 해봤는데 마음에 들지 않았습니다.

누구든지 제공할 수 있는 도움을 주시면 감사하겠습니다.

답변1

사용at향후 주문 예약(man at사용하기위한). 서버 또는 노드에서 무엇이고 다시 시작을 제어하는 ​​데 더 적합한지에 따라 다릅니다.

servers="server1 server2 server3 server4"
nodes="node1 node2 node3 node4"
remcmd="something"

for server in $servers; do
  echo "server [$server]"

  for node in $nodes; do
    echo "node [$node]"

    # Locally schedule a node reboot in 9 minutes
    at now + 9 minutes <<< "$remcmd $node username password 'superuser /reboot'"

    # or remotely schedule the node reboot
    $remcmd $node username password 'at now + 9 minutes <<< "superuser /reboot"'
  done    

  # Reboot server now
  $remcmd $server username password 'superuser /reboot'
done

관련 정보