我有一个简单的.sh文件,它控制服务器的空白空间。如果使用率超过90%,则仅显示红线,超过50%则显示黄线。我有300多个远程服务器,我想通过ssh连接运行.sh文件,但是我遇到了问题。在.sh文件中建立ssh连接后,无法执行for循环命令。这是下面的代码;
#!/bin/bash
TXT_BLD=$(tput bold)
TXT_RED=$(tput setaf 1)
TXT_YLW=$(tput setaf 3)
TXT_WARN="${TXT_BLD}${TXT_YLW}"
TXT_ERR="${TXT_BLD}${TXT_RED}"
TXT_RST=$(tput sgr0)
IFS= mapfile -t disk < <(df -h | tail -n +2)
for i in {01..21}; do
for j in {01..15}; do
ssh bc$i-$j
hostname="$(hostname)"
echo "#######${hostname}#######"
IFS= mapfile -t disk < <(df -h | tail -n +2)
for line in "${disk[@]}"; do
USAGE=$(echo $line | awk '{print $5/1}')
if [[ "$USAGE" -gt '90' ]]; then
echo "${TXT_ERR}$line${TXT_RST}"
elif [[ "$USAGE" -gt '50' ]]; then
echo "${TXT_WARN}$line${TXT_RST}"
else
echo "$line"
fi
done
done
done
如果您告诉我我的不足之处,我会很高兴
thx