如何通过shell脚本登录到不同的服务器

如何通过shell脚本登录到不同的服务器

我正在编写脚本来检查不同服务器的磁盘使用率是否高于阈值。但是当我执行脚本时,它只要求输入用户密码,而不提供正确的输出。

我有的脚本:

#!/bin/sh
USERNAMES=("username-for hostname1" "username-for hostname2")
PASSWORDS=("passwd-for hostname1" "passwd-for hostname2")
output1=/tmp/disk-usage.out
echo "---------------------------------------------------------------------------"
echo "HostName            Filesystem                Size Used Avail Use% Mounted on"
echo "---------------------------------------------------------------------------"
for server in `more /imp/scripts/servers.txt`----list of the servers
do
output=`ssh $server df -Ph | tail -n +2 | sed s/%//g | awk '{ if($5 > 10) print $0;}'`
echo "$server: $output" >> $output1
done
cat $output1 | grep G | column -t
rm $output1

它给我的输出如下:sh tt.sh

---------------------------------------------------------------------------
HostName            Filesystem                Size Used Avail Use% Mounted on
---------------------------------------------------------------------------
root@hostname1's password:

root@hostname2's password:

10.89.218.179:  /dev/mapper/vg_vm-lv_root  5.5G  2.6G  2.7G  50  /




__________________________________________________________________________________________________________

答案1

问题在于cat $output1 | grep G | column -t,您只想 grep 中的大小G,但是在您的预期输出中,您还希望看到 的输出M。您可以删除此 grep 命令或使用grep -- [GM].

相关内容