我正在尝试创建一个shell脚本来获取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%
所需的输出
文件系统,大小,已用,可用,使用%,已安装,Servername / dev / mapper / vg00-lvol3,1.5G,434M,923M,32%,/ br724
答案 0 :(得分:0)
将"${array_value[$j]}"
放在$server
之类的变量中,以提高可读性。
然后在sed中,做一个像sed "s/Mounted on/Mounted on $server/g"