我是脚本新手,如果系统上有更新,我会尝试向自己发送电子邮件。我想这样做的方法是,如果yum check-update报告任何包裹,给我发电子邮件,如果没有做任何事情。这就是我想出的:
#!/bin/bash
cat /dev/null > /root/scripts/updates.txt
yum check-update > /root/scripts/updates.txt
updatecheck=$(cat /root/scripts/updates.txt | grep updates | grep -v mirrors)
updatestatus=$(echo "$updatecheck" | wc -l)
if [ $updatestatus == 0 ]
then
mail -s "There are no updates for monitor01.aevhosting.com" email@address.com
else
mail -s "There are updates for monitor01.aevhosting.com" email@address.com
fi
它没有做任何事只是挂在那里并回到命令行我必须控制+ c退出脚本。我也在追踪mailog,看看它是否发出了什么,但事实并非如此。不知道这里有什么问题,但任何和所有帮助都会非常受欢迎!!
谢谢
答案 0 :(得分:2)
mail
正在等待标准输入来填充电子邮件正文。给它一些东西:
echo 'This is automated e-mail, do not reply' | mail -s "There are updates..." email@address.com
答案 1 :(得分:0)
感谢大家的帮助,我得到了@choroba的建议。我不得不在我下面做的邮件命令之前把回声“test”放在它上面并且它有效:
#!/bin/bash
cat /dev/null > /root/scripts/updates.txt
yum check-update > /root/scripts/updates.txt
updatecheck=$(cat /root/scripts/updates.txt | grep updates | grep -v mirrors)
updatestatus=$(echo "$updatecheck" | wc -l)
if [ $updatestatus == 0 ]
then
echo "There are no updates for monitor01.aevhosting.com" | mail -s "Update Status" email@gmail.com
else
echo "There are updates for monitor01.aevhosting.com" | mail -s "Update Status" email@gmail.com
fi
再次感谢大家的帮助!!