다른 서버의 디스크 사용량이 임계값을 초과하는지 확인하는 스크립트를 작성 중입니다. 하지만 스크립트를 실행하면 올바른 출력이 제공되지 않고 사용자 비밀번호만 묻습니다.
내가 가지고 있는 스크립트는 다음과 같습니다.
#!/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]
.