shell 脚本监控公网出口IP

一、情景linux

公司有2条二级运营商的链路,链路很是不稳定。更为严重的是咱们申请固定IP,出口IP居然老是变更。公司全部业务都须要经过外网,影响面很是大。有人提示能够对出口作监测,发现IP变更赶忙处理。我百度发现curl能够经过网站拿到出口地址后就直接写了,测试成功,就记录下来share一下。新办公区选址,运营商线路选择也是很是重要,否则是更多的坑在等着你。服务器


链路监测首先保证你作监测的服务器在你的那条出口链路上,这不用多说,以下简单示意图:curl

wKioL1gAVzXhoi-CAAAqnlUY4u0256.png-wh_50


先用ip138,就能够查看你本地址。ide

wKioL1gAWaXhKRkIAACmluD8Nj0286.png-wh_50




二、post

开始监控邮件想用sendmail,但问题百出。因而用linux自带的postfix,把命令行放到脚本里便可。测试

1>关闭selinux网站

[root@bogon ~]# cat /etc/selinux/config url


# This file controls the state of SELinux on the system.spa

# SELINUX= can take one of these three values:命令行

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted 

2>关闭防火墙

service iptables off

chkconfig iptables off

3>关闭sendmail

service sendmail stop

chkconfig sendmail off

4>开启postfix

service postfix restart

chkconfig postfix on

5>保证sendmail关闭,postfix开启

[root@bogon ~]# service postfix status

master (pid  53164) 正在运行...

[root@bogon ~]# service sendmail status

sendmail 已停

sm-client 已停


如今用postfix至关于foxmail同样,都属于客户端,用客户端主动去链接服务器端,而后发送邮件。

以QQ企业邮箱为例,首先在邮箱客户端设置以下,开启SMTP,有什么受权验证码的自行解决处理:

wKioL1gAcHWjvofuAABiJbP7qzg853.png-wh_50

postfix端配置以下:

FROM 填本身的邮箱,SMTP,SMTP-AUTH-USER填本身邮箱,PASSWORD填密码,方式LOGIN。

wKioL1gAchvwvZhMAABgA--KVoA727.png

测试邮箱发送报警邮件,test后面加本身的邮箱测试,成功后写入下面脚本:

wKiom1gAc2ni3lwyAAAHYnyDBv8661.png


作监控脚本:

建立ip_changed用来存放IP改变的时间,建立iptest用来存放监控脚本是否按计划任务来执行。因为目前出口IP固定,能够用错误的IP来实现if的mail测试(我已经实验成功)。

wKiom1gAdO3TUCcFAACNnTeiT9A274.png


三、计划任务

1分钟作一次IP的探测,保证能及时收到通知。

crontab -e 编缉一下计划任务

wKiom1gA7baSaj7pAAByfCwPKMI180.png


查看历史记录,以下数听说明脚本执行成功,若是有IP变更就能够及时收到通知。你们还能够加入出口连通性测试,但阀值设高点,否则敏感了容易误判。

[root@bogon home]# tail iptest.txt

wKiom1gA7jqC1QWGAABJMpEzZoE935.png

相关文章
相关标签/搜索