实验室新配了服务器,之前的服务器设置了IP变化时(一般为电脑重启时)自动发送IP至指定邮箱,但没有记录方法,此次重新配置记录一下


ubuntu定时检测IP变化并发送邮件查看IP

  • 1、安装ssmtp服务
  • 2、开通邮箱smtp服务
  • 3、配置ssmtp
    • 3.1、设置ubuntu发件人信息
    • 3.2、配置ssmtp用户使用权限
    • 3.3、简单测试
  • 4、crontab命令定时循环执行检测脚本发送邮件
    • 4.1、检测IP脚本
    • 4.2、crontab定时循环执行脚本

1、安装ssmtp服务

sudo apt-get install ssmtp mailutils

发送邮件需要有mailutils基础库,ssmtp库可以进一步选择发送人,收件人,邮件主题,邮件内容等。

2、开通邮箱smtp服务

需要开通发件人邮箱的smtp服务,无论是qq邮箱还是163邮箱等都可以直接开通,我选择的是qq邮箱,具体步骤可以参考:https://jingyan.baidu.com/article/6079ad0eb14aaa28fe86db5a.html
开通后即可获得邮箱账号的smtp的授权码,为一串英文乱码。

3、配置ssmtp

3.1、设置ubuntu发件人信息

首先更改文件/etc/ssmtp/ssmtp.conf,编辑器选择自己常用的,我用的是vim

sudo vim /etc/ssmtp/ssmtp.conf

进入文件后默认显示如下:

修改其中未注释信息如下:

即mailhub修改为qq邮箱的smtp服务器和端口,smtp.qq.com:465,如果发件人使用的是163邮箱,则163邮箱的服务器和端口自行百度,可能是smtp.163.com:465

hostname保持不变;

接着输入:

UseTLS=Yes
root=*********@qq.com
AuthUser=*********
AuthPass=******************

root后的邮箱为发件人邮箱,AuthUser后为发件人账号,即邮箱去掉后缀(例如@qq.com),AuthPass后为之前申请所得的smtp授权码。

保存退出(:wq)

3.2、配置ssmtp用户使用权限

即配置允许哪个ubuntu用户可以使用发件人邮箱发送邮件。

更改文件/etc/ssmtp/revaliases:

sudo vim /etc/ssmtp/revaliases

打开默认为:

在下方添加如下:

root:*********@qq.com:smtp.qq.com:465
lab532:*********@qq.com:smtp.qq.com:465


即格式为:用户:邮箱:smtp.qq.com:465,163邮箱更改对应位置即可。

这样配置即允许root用户和指定用户(如我的为lab532)使用ssmtp服务发送邮件。

ssmtp配置完成。

3.3、简单测试

echo "hello world" | mail -s "title" *********@163.com

输入上述命令,后面邮箱为收件人邮箱,可以任意指定,收到邮件,测试成功。

4、crontab命令定时循环执行检测脚本发送邮件

4.1、检测IP脚本

脚本作用:运行脚本时会获取当前IP地址,并与之前保存的IP地址进行比较,如相同,则结束脚本,如不同,则将新的IP保存下来并发送邮箱给指定收件人。

在/home/lab532/auto_scripts/目录下添加getip.sh脚本,目录和脚本名字可自己指定,我的是上述情况:

#!/bin/bash
MYIP=`ifconfig ppp0 | grep 'inet '| awk '{print $2}' | cut -d ':' -f 2`
TIME=`env LC_TIME=en_US.UTF-8 date`LASTIPFILE='/home/lab532/auto_scripts/.last_ip_addr'
LASTIP=`cat ${LASTIPFILE}`EmailFile='/home/lab532/auto_scripts/emai_info.txt'if [[ ${MYIP} != ${LASTIP} ]]; thenecho -e "To: *********@qq.com\nFrom: *********@qq.com\nSubject: Lab532 New IP\n\nHello!\n\nCurrent Time:${TIME}\nNew IP:${MYIP}" > ${EmailFile};/usr/sbin/ssmtp *********@qq.com < ${EmailFile};echo ${MYIP} > ${LASTIPFILE};fi

ifconfig命令找不到,则:

sudo apt install net-tools

脚本中获取IP命令,ubuntu20.04中使用如上,如果使用ubuntu16.04则修改如下:

ifconfig ppp0 | grep 'inet addr'| awk '{print $2}' | cut -d ':' -f 2

其中的ppp0为拨号端口,如果这里不同则也需要更改这里

脚本中的To后面的邮箱是收件人邮箱,课任意指定,From后面的邮箱和ssmtp后面的邮箱是发件人邮箱,需要和前面有授权码的发件人邮箱保持一致,subject的为邮件主题,可自己更改,后面的为内容可自己更改,但需要保留${MYIP}变量,发送多个邮件在后面echo ${MYIP} > ${LASTIPFILE};命令前多复制几次发送命令即可,即:

 echo -e "To: *********@qq.com\nFrom: *********@qq.com\nSubject: Lab532 New IP\n\nHello!\n\nCurrent Time:${TIME}\nNew IP:${MYIP}" > ${EmailFile};/usr/sbin/ssmtp *********@qq.com < ${EmailFile};echo -e "To: *********@163.com\nFrom: *********@qq.com\nSubject: Lab532 New IP\n\nHello!\n\nCurrent Time:${TIME}\nNew IP:${MYIP}" > ${EmailFile};/usr/sbin/ssmtp *********@163.com < ${EmailFile};

等等。

4.2、crontab定时循环执行脚本

在之前配置的用户权限中允许的用户下,输入如下命令:

crontab -e

添加如下命令:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin*/2 * * * * /bin/bash /home/lab532/auto_scripts/getip.sh

即可设置为每两分钟执行一次getip.sh脚本,关于crontab的用法可自行百度。

配置完成,等待指定邮箱发送指定内容。

ubuntu定时检测IP变化并发送邮件查看IP相关推荐

  1. 监测ip变化并发送邮件通知

    文章目录 1. 检测此时电脑ip 2. 知道了现在的ip就可以使用 >> 重定向到你自己的文件中 3. 取出你文件中保存的ip,并重新获取你现在的ip 如果ip不一样代表发生了变化,就发送 ...

  2. android查ip地址,安卓手机查看IP地址的两种方法,  二、进入手机状态

    安卓手机查看IP地址的两种方法, 二.进入手机状态 无论是电脑链接宽带上网还是手机链接wifi上网,当我们在链接网络后,会自动分配一个独立的IP地址,对于电脑端的上网IP地址我们可通过ipconfig ...

  3. 个人计算机有ip地址吗,如何查看ip? 查看个人电脑IP地址五大方法

    现在作为信息时代,几乎每个人都会用到电脑达到各种不同的目的.很多人精通于电脑的同时又对电脑很陌生.因为他们能够利用电脑上网.看视频.操作各种软件,所以说是精通.但是同时他们对电脑也是陌生的,很多电脑的 ...

  4. linux查看ip地址和检测网络

    1.查看IP地址 ifconfig   Linux查看IP地址的命令 ipconfig  Widows查看IP地址的命令 2.检测网络是否通畅 Linux ping 命令 | 菜鸟教程 ping + ...

  5. 如何查找云桌面服务器,云电脑服务器怎么查看ip

    你知道云电脑服务器怎么查看ip吗?下面和学习啦小编一起来看看云电脑服务器怎么查看ip. 云电脑服务器查看ip的方法 订购云虚拟主机后,会自动生效FTp帐号,密码,Ftp 服务器,及增送的二级域名,这些 ...

  6. CentOS 查看IP,端口 修改IP,打开端口生效

    今天收集的资料,就集中解决IP 端口的问题: 查看IP ifconfig eth0 →查看IP 不过输出的信息多一些 ifconfig|grep 'Bcast'  → 这个输出的信息要清晰多了 修改I ...

  7. CMD命令下修改和查看IP地址,DNS,网关

    设置IP,DNS,以及网关 >netsh interface ip set address name="本地连接" source=static addr=192.168.13 ...

  8. 葛连吉教你centos7怎么查看ip地址

    centos7怎么查看ip地址 centos7怎么查看ip地址 修改 ifcfg-ens33 然后重启网络服务:sudo service network restart 使用FinalShell连接虚 ...

  9. Linux查看IP地址的几种方法

    只显示IP地址: $ hostname -I (大写的i) 显示所有网络信息 $ ifconfig 获取Linux IP地址的六种方法总结 刘小白DOER 本文总结六种查看Linux IP地址的方法, ...

最新文章

  1. Win10系统如何在防火墙里开放端口
  2. Python Numba实现GPU加速
  3. 西藏打造云计算数据中心 2020年中国数据中心规模约2000亿元
  4. wdcp mysql密码_WDCP提示无法连接mysql及创建站点提示mysql密码不正确
  5. [ASP.NET]动态页面调用JS错误。保存为HTML文件就不报错了。
  6. 思科认证CCNA专业英文词汇全集(4)
  7. 万字干货,分布式数据库 HBase 中文入门指南
  8. CentOS7 配置与管理DHCP服务器及DHCP中继代理 DHCP服务实训整合
  9. 电脑使用技巧提升篇4:两步实现电脑软件开机自启
  10. 详谈Scrum和看板的区别
  11. .gitignore文件
  12. P1053 篝火晚会
  13. 激光雷达公司一径科技完成C轮融资,将加快核心芯片自研
  14. 职称计算机ppt教程,职称计算机:Word文档转为PPT的两种方法
  15. DirectX 教程: DirectX Tutorial - Direct3D: Getting Started
  16. 【转】设置右键显示/隐藏系统文件
  17. 剑灵力士卡刀ahk_技术宅分享 剑灵召唤一键卡刀代码使用教程
  18. SpringBoot实现人脸识别功能,亲测可用!
  19. 微信小程序存储(数据缓存,存储和取值)
  20. ART-Pi入门篇——(三)ART-Pi代码手册

热门文章

  1. 那些所谓的中国企业(转)
  2. linux java 弹出界面,java gui界面在linux
  3. 基于JavaWeb的药品进销存管理系统(JSP)
  4. 延续中秋快乐-月饼儿歌串串烧
  5. http://show.ku6.com/app.html,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...
  6. 重装系统后桌面找不到计算机,重装系统后网络图标不见了怎么办
  7. 【笔记】ubuntu 中 移动硬盘无弹出选项的解决办法:sudo ntfsfix /dev/move_disk_name
  8. Pyqt5 按键窗口置顶与取消置顶
  9. 竣达技术丨中小机房远程网络在线动环监控方案
  10. 京东代运营服务商排名,京东代运营电商公司排行榜