【问题标题】:Looping script, redirect to file循环脚本,重定向到文件
【发布时间】:2018-05-18 14:22:55
【问题描述】:

所以我有这个 BASH 脚本,我想做的是联系服务器。检查目录的使用百分比。如果它高于我设置的阈值 (90),则将该服务器名称打印到运行脚本的服务器上的另一个文件中。

它所做的是将第一个服务器名称两次打印到文件中,所以它看起来像

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

【问题讨论】:

  • 你想要 ssh $i
  • 你的循环变量是$i,但你说的是ssh $SERVERS。你想要ssh $i,这样它首先执行 server1,然后执行 server2。

标签: linux bash shell loops output


【解决方案1】:

试试这个,

#!/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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 2014-12-08
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多