IPcheck-IP地址变化监控脚本

安装

1
2
sudo apt-get install mutt
sudo apt-get install msmtp

安装好了这两个包之后,就是进行相关配置文件的配置了:

首先配置 mutt

系统全局设置配置文件在 /etc/Muttrc,如果使用某个系统用户,可以在~/.muttc中设置,没有该文件,就自己创建。

1
vi .muttrc
1
2
3
4
5
6
set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="qingwei_cui@163.com"
set from="qingwei_cui@163.com"
set envelope_from=yes
set copy=no

接着,配置msmtp

创建 ~/.msmtprc 和 ~/.msmtp.log,分别为配置文件和日志文件

1
vi .msmtprc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Set default values for all following accounts.
defaults

# The SMTP server of the provider.
account 163

# SMTP邮件服务器地址
host smtp.163.com

# 发送的邮件Email
from qingwei_cui@163.com
auth login
tls off
# 邮件服务器登录账号
user qingwei_cui@163.com

# 邮件服务器登陆密码
password Cucqw123456
# Set a default account
account default : 163

# 日志
logfile ~/.msmtp.log

由于password是明文,所以需要修改此文件的访问权限

1
chmod 600 .msmtprc

同时创建 日志文件

1
touch ~/.msmtp.log

做完了以上的配置之后,可以进行邮件的发送测试了:

查看SMTP服务器是否支持认证的TLS加密:

1
msmtp --host=smtp.163.com --serverinfo

发送邮件测试:

1
echo "hello world" | mutt -s "title" 39886157@qq.com

一般情况下,均可已正常接收邮件。

下面是一个比较完整的发送邮件示例

发送给多人,抄送,添加附件

1
echo "hello" | mutt -s "title" 39886157@qq.com,qingwei_cui@163.com -c gary@izheteng.site -a /tmp/ip.tmp

发送邮件时设置邮件的文本类型为:html格式,邮件的等级为:重要

1
2
address="gary@izheteng.site"
echo $content|mutt -s "${subject}" -e 'set content_type="text/html"' -e 'send-hook . "my_hdr X-Priority: 1"' $address

ipcheck.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

#Wan_IP=`curl -s ip.3322.net`
Wan_IP=`curl -s ip.sb`
Last_IP=`cat /home/gary/shell/.lastIP.txt`

if [ "$Wan_IP" != "$Last_IP" ]
then
if [ "$Wan_IP" != "" ]
then
echo "-" >> /home/gary/shell/ip.log
echo $Wan_IP > /home/gary/shell/.lastIP.txt
echo `date +"%Y-%m-%d %H:%M:%S"` >> /home/gary/shell/ip.log
echo $Wan_IP >> /home/gary/shell/ip.log
echo "Your IP Changed, We Will Send A Mail To You..."
cat /home/gary/shell/.lastIP.txt | mutt -s "IP Changed" qingwei_cui@qq.com
#cat /home/gary/shell/.lastIP.txt | mutt -s "IP Changed" qingwei_cui@qq.com wrzh26252@outlook.com uhuaqing@geinshow.com
echo "Done!"
else
echo "WanIP is empty!"
fi
else
echo "WanIP has not changed!"
fi

定时任务

1
sudo vim /etc/crontab

每5分钟检查一次

1
*/5 * * * * gary /bin/bash /home/gary/shell/ipcheck.sh
文章目录
  1. 1. 安装
  2. 2. 首先配置 mutt
  3. 3. 接着,配置msmtp
  4. 4. 下面是一个比较完整的发送邮件示例
  5. 5. ipcheck.sh
  6. 6. 定时任务