私が使用して構築する1つ以上のサーバーのホスト名を一覧hostname_list
表示するファイルがあります。これで、ホスト名に対してコマンドを実行する必要があります。テストとして、リスト内の各サーバーに対してpingを実行しようとしています。grep
awk
salt
test.ping
forループで試してみましたが、正しく動作しません。
私はいくつかのバリエーションを試しました。
for i in hostname_list
do
salt $i test.ping
done
答え1
これがhostname_list
1行に1つのホスト名を含むテキストファイルであると仮定すると、次のコマンドを使用できます。
while read -r line
do
[[ -n "$line" ]] && salt $line test.ping
done < hostname_list
この[[ -n "$line" ]]
文は、次のコマンドを実行する前にその行が空であることを確認します。