Linux 循环脚本,重定向到文件
所以我有这个BASH脚本,我想做的是,接触服务器。检查目录的已用百分比。如果它高于我设置的阈值(90),则将该服务器名称打印到运行脚本的服务器上的另一个文件中 它所做的是将第一个服务器名在文件中打印两次,使其看起来像Linux 循环脚本,重定向到文件,linux,bash,shell,loops,output,Linux,Bash,Shell,Loops,Output,所以我有这个BASH脚本,我想做的是,接触服务器。检查目录的已用百分比。如果它高于我设置的阈值(90),则将该服务器名称打印到运行脚本的服务器上的另一个文件中 它所做的是将第一个服务器名在文件中打印两次,使其看起来像 server1 server2 这是我的剧本。。。我不明白为什么它会循环到第一台服务器两次 #!/bin/bash SERVERS="server1 server2" for i in $SERVERS; do ssh $SERVERS "
server1
server2
这是我的剧本。。。我不明白为什么它会循环到第一台服务器两次
#!/bin/bash
SERVERS="server1
server2"
for i in $SERVERS; do
ssh $SERVERS "
df -h | grep var | awk '{print \$4}' | sed 's/%//g' > /home/user/space.txt
RESULTS=\$(grep -E "1[5-9]" /home/user/space.txt)
THRESHOLD=90
if [[ \$RESULTS -lt \$THRESHOLD ]]; then
exit 1;
elif [[ \$RESULTS -gt \$THRESHOLD ]]; then
hostname;
fi
" >> /home/user/problem.txt
done
试试这个
#!/bin/bash
SERVERS="server1
server2"
for i in $SERVERS; do
ssh "$i" "
df -h | grep var | awk '{print \$4}' | sed 's/%//g' > /home/user/space.txt
RESULTS=\$(grep -E "1[5-9]" /home/user/space.txt)
THRESHOLD=90
if [[ \$RESULTS -lt \$THRESHOLD ]]; then
exit 1;
elif [[ \$RESULTS -gt \$THRESHOLD ]]; then
hostname;
fi
" >> /home/user/problem.txt
done
您想要ssh$iy您的循环变量是
$i
,但您说的是ssh$SERVERS
。您需要ssh$i
,以便首先执行server1,然后执行server2。