100 台のサーバーのサーバー統計を取得し、詳細をテーブルにロードするシェル スクリプトを作成しようとしています。 ssh して df –k を実行します。ssh キーは既にセットアップされています。私が直面している問題は、サーバー名を結果に関連付けることができないことです。サーバー名を列として df –k 出力に追加する必要があります。また、ロードするために適切にフォーマットされた区切り文字、タブ、またはスペースがないため、出力フォーマットをテーブルにロードすることはできません。sed と他のさまざまなオプションを試しましたが、うまくいきません。
#!/bin/ksh
PARMFILE=/opt/sdw/scripts/db_scripts/server_stats.txt
value=$(<server_list1.txt)
echo "$value"
sourceservers=`grep =/opt/sdw/scripts/db_scripts/server_stats.txt |cut -d= -f2`
#Input array passed as parameter file to the script
set -A array_value $value
vLen=${#array_value[@]}
echo $vLen
for(( j=0; j<$vLen; j++))
do
#echo "${array_value[$j]}"
#ssh -q "${array_value[$j]}"; df -k
ssh -q "${array_value[$j]}" 'df -h' >> df.out
ssh -q "${array_value[$j]}" df -h | column -t >> df1.out
ssh -q "${array_value[$j]}" df -k | tr -s " " | sed 's/ /, /g' | sed '1 s/, / /g' | column -t >> df3.out
[[ ! $? = 0 ]] && echo Failure, errno $?, cannot connect to host "${array_value[$j]}" >> sshfailed.list
done
出力
ファイルシステムの使用サイズ 使用率 使用率 /dev/mapper/vg00-lvol3 にマウント 1.5G 434M 923M 32%
望ましい出力
ファイルシステム、サイズ、使用済み、使用可能、使用%、マウント、サーバー名 /dev/mapper/vg00-lvol3、1.5G、434M、923M、32%、/ br724