test.sh
(GNU screen)という画面でスクリプトが実行されていることを確認したいと思いますtestscreen
。
これは複数のサーバーにまたがる必要があるため、SSHを介してリモートでやりたいと思います。
for serverid in {1..100}; do ssh root@server${serverid} "command"
という画面でスクリプトが実行されているかどうかcommand
を確認するには?test.sh
testscreen
答え1
使用
screen -Q windows
各ウィンドウで始まるコマンドを含むウィンドウを一覧表示できます。
特定のセッションを確認するには
screen -S testscreen -Q windows
特定のコマンドが存在するかどうかをテストするには、次のようにしますtest.sh
。
screen -S testscreen -Q windows | grep -E '^[[:digit:]]+[[:space:]]+test\.sh$'
(これはウィンドウタイトルです)
ちょうどこれを実行してくださいssh
:
for serverid in {1..100}; do
ssh root@server${serverid} screen -S testscreen -Q windows \
| grep -q -E '^[[:digit:]]+[[:space:]]+test\.sh$' \
&& echo "command running!" \
|| echo "not running!"
done