SleepコマンドでEchoコマンドを使用する

SleepコマンドでEchoコマンドを使用する

それで、数週間前にここに質問を投稿しましたが、受け取った回答が役に立ちましたが、より良い回答を得るためにいくつかの情報を追加する必要があると思いました。

私が使用するコンピュータシステムには、各サーバーに16のノードを持つ8つのサーバー(4つのプライマリ、4つのスタンバイ)があります(各サーバーに4つのノードがあり、各スタンバイに同じノードがあります)。サーバーがオンラインになるまでノードをロードできません。だから私は2つの行を互いにリンクする方法を理解するまで、2行の別々のコードを書いてきました。

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

だから私の2番目のコマンドは

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

関連情報