我目前正在尝试制作一个简单的脚本/工具,以便ping和监控公司中所有IP摄像头的网络。所以我创建了iplist.txt并将所有ips添加到其中,每个都在一行上。该脚本将ping所有列表,然后打印" up"或" down"根据ping结果。
#!/bin/bash
# Program name: pingall.sh
date
cat /home/wade/iplist.txt | while read output
do
ping -c 1 "$output" > /dev/null
if [ $? -eq 0 ]; then
echo "node $output is up"
else
echo "node $output is down"
fi
done
我现在要做的是将包含输出的发送电子邮件脚本添加到电子邮件中。所有电子邮件端口(465,993,587,25 ......等)都已打开。那么如何添加可以将输出发送到gmail或非gmail(可能是dovecot)的电子邮件地址的sendmail或邮件脚本?
运行./pingall.sh > report.txt
可能是附件或内容。在完成之后,我可能会把它添加到一个crond中。
答案 0 :(得分:1)
所以我找到了答案,为了做到这一点,你首先需要安装ssmtp包:
在基于Debian的系统中:
apt-get install ssmtp
在Arch Linux中
pacman -S ssmtp
之后,您需要在/etc/ssmtp/ssmtp.conf中编辑conf文件,并附上您的信息:(此处为gmail mail-server的信息示例)
vim /etc/ssmtp/ssmtp.conf
# root is the person who gets all mail for userids < 1000
root=your@email.com
# Here is the gmail configuration (or change it to your private smtp server)
mailhub=smtp.gmail.com:587
AuthUser=your@gmail.com
AuthPass=yourGmailPass
UseTLS=YES
UseSTARTTLS=YES
对于Gmail帐户,您可能会收到错误消息,因此您需要将安全性设置为低。 (第一次尝试后,说明将被发送到您的收件箱)
现在,您需要为pingall创建一个永久别名。
首先,您需要编辑.bashrc文件
vim ~/.bashrc
在文件末尾添加别名:(取决于脚本的位置)
alias pingall='cd /home/wade && ./pingall.sh'
保存并退出并立即执行
. ~/.bashrc
最后,您需要通过cron.daily每天自动执行此操作
如果您使用的是Arch Linux,则需要先安装cronie,否则默认情况下应该安装。
pacman -S cronie
你需要进入/etc/cron.daily,然后创建一个cron作业文件“pingall”,添加以下脚本:
#!/bin/bash
pingall >> mail -s "sample subject" samplemail@test.com
您可以将vim替换为nano,vi,gedit等任何其他文本编辑器。
最后,您现在有一个自动脚本,每天ping所有ip摄像头,并在bash脚本结束时将输出通过电子邮件发送给收件人。
(您还可以添加多个收件人,只需添加逗号“,”然后添加下一封电子邮件。
我希望它有所帮助。