centos7 实现自动发送本机ip改变后发送邮件

本文介绍了如何配置防火墙允许25端口通信,创建shell脚本检测IP变化并通过邮件通知。步骤包括开启端口、检查端口状态、写脚本监控IP变动,并将其设置为定时任务,以便在IP改变时自动发送邮件报告。

https://www.cnblogs.com/espoirChen/p/11460875.html

配置证书服务查看:
https://www.cnblogs.com/yunweis/p/8149242.html

开启25端口:

先查看25端口情况:

firewall-cmd --query-port=25/tcp

添加端口:

firewall-cmd --add-port=25/tcp --permanent

重载防火墙:

firewall-cmd --reload

发送邮件:

echo "邮件内容" | mail -s "主题" xxxx@qq.com

 

shell 脚本:

cd /usr/local

touch ip.txt
touch sentMailIPChange.log
touch newIp.txt
ip a show dev em1|grep -w inet|awk '{print $2}'|awk -F '/' '{print $1}' >newIp.txt
IPADDRESS=`cat newIp.txt`
OLDIP=`cat ip.txt`
echo $IPADDRESS
echo $OLDIP
if [ $IPADDRESS == $OLDIP ]
then
echo "`date -u` not changed"
else
echo $IPADDRESS > ip.txt
echo "`date -u` changed" >> sentMailIPChange.log
echo "服务器ip是$IPADDRESS"| mail -s "服务器IP地址发生改变" asdf@1.com.cn,asdf@relspace.com.cn,asdf@1.com.cn,asdfasdfadf@1.com.cn,houyusi@1.com.cn
echo "Send email successfully!"
fi

将脚本放到定时任务管理工具中

  1.  

    yum install crontabs

  2.  

    systemctl enable crond

  3.  

    systemctl start crond123

    $ vim /etc/crontab
    59 23 * * * root shell脚本路径

 

### 查看 CentOS 7 中本地 IP 地址的方法 在 CentOS 7 系统中,可以使用多种方式来查看本机IP 地址。以下是几种常见的方法: #### 方法一:通过 `ip addr` 命令 这是推荐的方式之一,因为它是现代 Linux 发行版中常用的工具[^3]。执行以下命令即可查看所有网络接口及其对应的 IP 地址: ```bash ip addr ``` 该命令会列出所有的网络设备以及它们的状态、MAC 地址和分配的 IPv4 或 IPv6 地址。 #### 方法二:通过 `ifconfig` 命令 虽然 `ifconfig` 已经被废弃并逐渐由 `ip` 替代,但在某些环境中仍然可用。如果系统已安装 net-tools 软件包,则可以通过运行以下命令获取 IP 地址信息: ```bash ifconfig ``` 需要注意的是,在默认情况下,CentOS 7 可能未预装此工具。如果没有找到该命令,可先安装它: ```bash yum install -y net-tools ``` #### 方法三:图形界面下的 NetworkManager 对于桌面环境版本的 CentOS 7 用户来说,可以直接点击右上角的任务栏图标进入 **Network Settings** 页面,从中能够直观看到当前活动连接所使用的 IP 地址。 #### 方法四:读取配置文件 当需要了解静态设定好的IP时,也可以直接打开对应网卡的配置文档进行查阅。通常位于 `/etc/sysconfig/network-scripts/ifcfg-<interface>` 文件内(比如 ifcfg-eth0 或者 ifcfg-enp0s3)。其中的关键字段包括但不限于 `IPADDR`, `NETMASK`, 和 `GATEWAY` 等项[^2]: ```bash cat /etc/sysconfig/network-scripts/ifcfg-ens33 ``` 以上就是一些基本的操作指导帮助你在 CentOS 7 平台上成功定位到自己的主机内部署情况下的公网或者局域网内的私有地址表示形式。 ### 示例代码展示 下面给出一段简单的脚本来自动提取主要网络适配器的第一个IPv4地址作为例子: ```bash #!/bin/bash INTERFACE=$(ip route | grep default | awk '{print $5}') IP_ADDRESS=$(ip -o -f inet addr show dev "$INTERFACE" | awk '{split($4,a,"/"); print a[1]}') echo "The primary interface is ${INTERFACE} with the address of ${IP_ADDRESS}." ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值