【发布时间】:2016-02-13 17:48:21
【问题描述】:
使用我生成的 SSH 密钥从主机 A SSH 到几台主机(现在只在下面列出一个),然后转到特定文件,grep 查找日期为昨天的特定单词 .. 然后我想通过电子邮件发送这个输出给我自己。
它正在发送一封电子邮件,但它给了我命令而不是命令的输出。
#!/bin/bash
HOST="XXXXXXXXXXXXXXXXXX, XXXXXXXXXXXXX"
DATE=$(date -d "yesterday")
INVALID=' cat /xxx/xxx/xxxxx | grep 'WORD' | sed 's/$/.\n/g' | grep "$DATE"'
COUNT=$(echo "$INVALID" | wc -c)
for x in $HOSTS
do
ssh BLA@"$x" $COUNT
if [ "$COUNT" -gt 1 ];
then
EMAILTEXT=""
if [ "$COUNT" -gt 1 ];
then
EMAILTEXT="$INVALID"
fi
fi
done | echo -e "$EMAILTEXT" | mail XXXXXXXXXXX.com
【问题讨论】:
-
代码格式(使用
{}按钮),有意义的标题(简洁地反映你的问题,而不是情绪)。请注意,HOST和HOSTS是不同的变量。不要使用,作为分隔符,只使用空格。否则,您的第一个主机将是XXXXXXXXXXXXXXXXXX,(带逗号) -
代码不工作并且没有做任何有用的事情是一种非常糟糕的方式来传达你想要它做的事情。
标签: linux bash email for-loop ssh