目录

  • 前言
  • 服务器操作系统
  • 发送邮件方法
  • 编写脚本
  • 开机启动项执行
  • 定时发送

前言

因为寒假要离校(舍不得学校的热水和球场),担心服务器被断电重启后的IP地址发生变化,于是和实验室的小伙伴心生一计,打算每次重启发送当前的IP地址到邮箱,这样就不用担心IP地址发生变化了。

为了防止学校断网不断电导致的IP地址变化,后来又改成了定时发送邮件,现在把两种方法都列出来以供参考。

服务器操作系统

# 查看操作系统信息
cat /etc/issue

Ubuntu 18.04.5 LST

发送邮件方法

我也是参考的别人的文章,详细的教程主要参考烂泥:ubuntu下配置msmtp+mutt发送邮件,有想了解更细节的朋友们可以直接点击链接查看。

这里我详细讲解我的傻瓜式流程。首先安装mutt和msmtp,如下:

安装软件包

# msmtp就可以提供一般的邮件服务了
# mutt也是调用了msmtp,但更方便用户使用邮件功能
sudo apt-get install msmtp mutt

邮箱授权码

然后,我们会需要一个当前邮箱服务器的SMTP服务授权码,比如我使用的是163的邮箱,我们将在这里开启SMTP服务的授权码:

然后选择开启,通过手机短信等验证方式验证,记录下最后得到的授权码(我拿自己的邮箱尝试的,所以mask一些部分),这样我们在邮箱上操作的部分就结束了。

msmtp发送邮件
我一般习惯使用vim编写文件,有的人会用vi,这个看个人习惯,编写的代码如下:

# 创建msmtp.log文件
sudo vim /var/log/msmtp.log
# 创建msmtprc文件
sudo vim /etc/msmtprc

/etc/msmtprc 内容如下:

defaults
tls on
# /var/log/msmtp.log 记录邮件发送的详细信息
logfile /var/log/msmtp.log
# 这个可以自己定义,与account default一致即可
account fatekong
# 设置邮件的服务器,这里设置了163后,只能发送给163的邮箱
host smtp.163.com
port 25
# "fatekong@163.com"是示范邮箱
from fatekong@163.com
auth login
tls off
# "fatekong@163.com"是示范邮箱
user fatekong@163.com
# "Authorization code"填写自己邮箱得到的授权码,输入时没有
password "Authorization code"
account default: fatekong
~
~

由于在上面文件中有password这个敏感信息,为了安全,我们对这个文件的权限进行设置,设置完成后就可以进行尝试验证,如果成功就表示没什么问题,如果失败,检查上面的步骤有没有问题,或者留言,我看到会帮助一起解决。

sudo chmod 600 /etc/msmtprc
echo "Subject: 【Test】\r\n\r\nThis is a test." |msmtp -d -C /etc/msmtprc -t fatekong@163.com

mutt发送邮件
个人人为mutt比msmtp更加方便,并且能传输更多东西,不过我就传个IP就不搞的那么花里胡哨了,下面简单介绍下mutt发送文件内的内容(想知道更多的可以瞅瞅这篇正式的介绍「Mutt」:命令行的邮件大师 (一文详解))。

首先设置mutt的配置文件Muttrc:

sudo vim /etc/Muttrc

/etc/Muttrc 内容如下:

set sendmail="/usr/bin/msmtp"
set use_from=yes
# "realname"可以填写你像设置该服务器的名称
set realname="realname"
set editor="vim"

设置好这些,我将需要发送的内容全部存储在一个文件里,获取文件的内容发送邮件信息,创建一个名称为serverIp的文件存储在*/var/log/里,绝对路径为:/var/log/serverIp*,将文件内容发送给邮件的代码如下:

cat /var/log/serverIp|mutt -s "【Test】" fatekong@163.com

检查自己邮箱,一般来说上面的步骤没有问题就没有问题了(如果上面或下面遇到权限的问题,可以通过chmod命令修改权限来解决)。

编写脚本

由于是Linux系统,shell脚本还是最方便的,我们在/home/文件夹下创建一个名为serverIp.sh的脚本文件,将里面的内容编辑如下:

#!/bin/bash
echo "send e-mail"# 将ifconfig得到的IP信息存储到/var/log/serverIp的文件中
# 这里一定要加/sbin/,因为在crontab里面执行需要的是绝对路劲,
# ifconfig这种命令也不例外
# 如果没有加/sbin/,得到的全是内容为空的输出
/sbin/ifconfig > /var/log/serverIp# 通过mutt,获取/var/log/serverIp文件的内容,以title为"【Title】",内容为
# serverIp存储的信息,发送给邮箱fatekong@163.com
cat /var/log/serverIp |mutt -s "【Title】" fatekong@163.com# 上面这两句可以合成一句,这样就可以省略:/var/log/serverIp这个文件
/sbin/ifconfig |mutt -s "【Title】" fatekong@163.com

为了验证这个脚本是否成功,可以尝试直接运行脚本:

./serverIp.sh

开机启动项执行

设置开机启动项的方法有很多,详情可查看这篇博客Linux—添加开机启动(服务/脚本)。我在其中选择了最简单的方法,弊病就是,每个用户登录的时候都会启动一次,因为最后没有使用这个方案,所以我也没改

服务器定时发送IP地址到邮箱相关推荐

  1. 土法炼钢:服务器定时汇报IP地址给我

    我家里面的服务器,每过两天会自动重新拨号,所以公网IP地址天会变的. 而一旦IP地址发生变化,我就没有办法从公网访问我家里的服务器了. 怎么办呢? 1. 在另外一台公网服务器上放一个php程序 myi ...

  2. nc服务器修改过ip地址,nc服务器修改过ip地址

    nc服务器修改过ip地址 内容精选 换一换 虚拟IP地址用于为网卡提供第二个IP地址,同时支持与多个弹性云服务器的网卡绑定,从而实现多个弹性云服务器之间的高可用性.登录管理控制台.选择"计算 ...

  3. 金蝶服务器怎么修改ip地址,金蝶服务器账套ip地址修改

    金蝶服务器账套ip地址修改 内容精选 换一换 如果要自定义裸金属服务器的DNS服务器信息,需要将裸金属服务器网络设置为静态IP.若将动态DHCP改为静态IP设置,IP和网关等网络信息必须和裸金属服务器 ...

  4. 网站服务器的ip地址会变吗,网站的服务器变了 IP地址变吗

    网站的服务器变了 IP地址变吗 内容精选 换一换 本文介绍通过华为云市场镜像"Drupal内容管理系统(LAMP)"搭建Drupal网站的方法.Drupal是使用PHP语言编写的开 ...

  5. 华为服务器查看虚拟ip,裸金属服务器管理虚拟IP地址

    裸金属服务器管理虚拟IP地址 内容精选 换一换 计费项包括裸金属服务器.云硬盘(可选).弹性公网IP(可选),详细说明如表1所示.裸金属服务器计费模式为包年包月付费,不支持按量付费.其中付10个月费用 ...

  6. Mac/Linux系统连接远端服务器以及相同IP地址的服务器账号密码重置,ssh失败问题

    连接远端服务器 ssh 账号@IP地址 输入完成之后会提示输入密码,密码输入正确后,就可以连接成功了 重置ssh密钥 如果连接的服务器除了IP地址没有改变,其余的账号.密码.系统等都变了的话,因为曾经 ...

  7. 通过ip能查服务器型号,通过ip地址查服务器归属

    通过ip地址查服务器归属 内容精选 换一换 Atlas 200 DK开发者板支持通过USB端口或者网线与Ubuntu服务器进行连接,连接示例图如图1所示.Atlas 200 DK连接Ubuntu服务器 ...

  8. 通过ip地址查询远程服务器系统,通过ip地址查询远程服务器系统

    通过ip地址查询远程服务器系统 内容精选 换一换 日志记录了系统的运行情况和功能流程的处理情况,是维护人员查看系统状态.进行问题定位的重要工具和手段.日志模块根据系统设置的日志级别,记录不同详细程度的 ...

  9. 如何获得使用PHP的服务器的本地IP地址?

    ​ 我正在开发一个只能在本地networking上运行的PHP应用程序. 应用程序将使用自定义安装程序安装到服务器,就像使用Stunnix高级Web服务器所做的一样. 作为使应用程序更加用户友好的一部 ...

最新文章

  1. 语义分割--Understanding Convolution for Semantic Segmentation
  2. 免费的400GB网络存储空间
  3. 搜索引擎设计实用教程(3)-以百度为例
  4. 文件锁操作《精通Unix下C语言编程与项目实践》之三
  5. 如何解决IE地址栏前小图标不显示问题
  6. servlet需要和ajax,如何使用Servlet和Ajax?
  7. C语言---二进制和文本文件的备份
  8. Wazuh--一个完善的开源EDR产品
  9. mysql分组统计查询 张三_MySQL 怎样分组查询
  10. 自动按键 回车 变成_【按键大扫荡】驾驶员的“眼”
  11. CAP:Alantany 谈 CAP
  12. Android开发-高德地图导航
  13. (每日一练c++)CC114 有效的数独
  14. 中国经济能否率先复苏
  15. 基于 Petri 网的软件过程支撑环境设计
  16. 出线后,谈中国足球的苟且与远方
  17. Android中的MVVM架构设计-实用篇(五)实现RecyclerView列表展示
  18. 常见破解软件的优秀替代免费软件
  19. 堆排HeapSort
  20. 前端之JS篇(一)——计算机基础JS简介

热门文章

  1. 《逆袭大学——传给IT学子的正能量》目录
  2. Guass列选主元消去法和三角分解法
  3. 什么是似然函数?是条件概率吗?
  4. 网络安全从入门到精通的学习资源汇总
  5. Navicat连接腾讯云服务器的MySQL
  6. 课程设计 - 单词检查
  7. 基于ASP.NET的电商系统的设计与实现
  8. 【6-2】hbase shell
  9. C语言程序设计博客作业03
  10. 【转载】定位系统中的多径效应