我正在编写脚本来检查不同服务器的磁盘使用率是否高于阈值。但是当我执行脚本时,它只要求输入用户密码,而不提供正确的输出。
我有的脚本:
#!/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]
.