Linux 自动发送本机 IP 到邮箱
1. 前言
在使用 SSH 连接嵌入式 Linux 主板时,经常会遇到不知道板子 IP 的情况,这时就要通过串口登录或者其他方式查找 IP,然后再进行远程连接,很是繁琐。
如果能在 Linux 主板开机后,自动上报 IP,这样就方便很多了。
利用 Python 中的 yagmail 库,可以很简单的实现。
2. yagmail
在 Python 里发邮件,yagmail 应该是最简单的方式了。
yagmail官网 已经有很详细的说明,这里只记录一下我的操作步骤。
2.1 安装 yagmail
- python2
pip install yagmail
- python3
pip3 install yagmail
2.2 配置账号
- 发件人信息
self_server = autosend_mail.SMTP(user="shilong_native@163.com", password="OPTZKTAEHISSYQOB", host="smtp.163.com")
参数包括 邮箱、密码、服务器,这里以 网易163
邮箱为例,密码不是明文密码,要在邮箱设置里生成一个类似个人令牌的口令,不同邮箱的生成方式都差不多,具体方法可以登录自己的邮箱,在设置页查看,或者百度。
- 以
QQ
邮箱为例(其他邮箱类似)
【qq邮箱——设置——账户——POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务——IMAP/SMTP服务——开启】
公共邮箱:添加端口号与smtp的属性即可(详细请百度解决)。
2.3 发送邮件
收件人可以设置多个,可以对每个收件人设置昵称,可以发送 html
格式的邮件,发送其他附件,也可以使图片在邮件正文显示,关于上述这些,这里就不多说了,可参见 yagmail
的 作者主页 。
完整代码如下 auto_email.py
#coding:utf-8import yagmail as autosend_mailfrom loguru import logger# 读取文件到列表
with open("ip.txt","r") as ip_file:array = []content = ip_file.read().splitline()for line in ip_file:array.append(line)# 邮件发送
# 发件人信息;(邮箱、密码、服务器)
self_server = autosend_mail.SMTP(user="shilong_native@163.com", password="OPTZKTAEHISSYQOB", host="smtp.163.com") email_Name = ["416604093@qq.com"] # 收件人;
# email_Title = ["demo"] # 邮件标题;(非必需)
email_Title = content
email_Content = array # 邮件内容;(非必需)
email_Annexes = ["ip.txt"] # 邮件附件;(非必需)self_server.send(to=email_Name, subject=email_Title, contents=email_Content, attachments=email_Annexes)
self_server.close()logger.info("\n**** Email is sent! ****\n")
3. 获取 ip
这个就很简单了,通过 shell 脚本获取 ip 数据,然后保存到文件即可。
再调用 auto_email.py
文件,把获取到的 ip 当作邮件内容发送出去。
最后就是把 shell 脚本添加到 Linux 的开机启动项里,这样在板子开机后,如果有网络,就会自动获取 ip,然后发给指定的邮箱了。
#/bin/bashsource_path = /home/pi/ip_report # 开机脚本存放路径
sleep 15 # 延时等待系统开机并联网完成cd $source_path
uname -n > ip.txtecho "\r\n"
ifconfig >> ip.txt
python3 autoemail.py
Linux 自动发送本机 IP 到邮箱相关推荐
- Linux更改本机ip
Linux如何更改本机ip 这段时间的工作需要用到Linux,所以需要学一下,所以做个笔记吧 1.登录到Linux(需要用root) 2.执行命令cd /etc/sysconfig/network-s ...
- linux获取本机IP地址
转自:http://blog.csdn.net/bailyzheng/article/details/7489656 ifaddrs结构体定义如下: C代码 struct ifaddrs { st ...
- linux 取出本机IP
取出本机IP地址: ifconfig|grep Bcast|awk -F: '{print $2}'|awk -F " " '{print $1}' ifconfig eth0|g ...
- udp linux 获取本机ip
static uint32_t GetSenderIP(struct sockaddr_in * paddr){ /* int s_addr_getter;//??è?±?μ?·¢?íip ó?μ?s ...
- linux取本机ip命令,linux 单独取出本机IP地址
[root@YZC ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:86:02:03 inet addr:59.151.110.2 ...
- Linux查看本机IP:curl cip.cc
curl http://members.3322.org/dyndns/getip curl ip.6655.com/ip.aspx curl ifconfig.me curl icanhazip.c ...
- Ubuntu 18.04 查看本机IP地址的两种方法 ip和ifconfig
Linux查看本机IP有两种方法,一种方法是使用废弃的ifconfig,第二种方法是使用内置的ip. 在Ubuntu 18.04中, net-tools 工具包没有被默认安装,这就意味着不能使用 if ...
- 在Linux上利用python获取本机ip
下面介绍在Linux上利用python获取本机ip的方法. 经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用python中的socket等模块来得到,下面是这两种方法的源码 ...
- linux 获取本机的所有IP地址
linux下获取本地的ip地址,我这里只介绍一种,亲测有效,包括你虚拟出来的IP地址也可以显示出来. 先说一下可能大家都有听过的使用 gethostname 函数和 gethostbyname 函数获 ...
最新文章
- document.getElementById()和document.forms[0].submit()
- linux c 调用 so 库
- Rust语言之HelloWorld Web版
- CUDA和cuDNN到底是啥关系?(cuDNN是基于CUDA的深度学习GPU加速库)
- FPGA学习及设计中的注意事项
- 三十、电子商务分析与服务推荐的分析方法与过程
- Nginx中Gzip压缩功能的实例配置
- linux查看文件从底部开始,linux中怎样从底部向上查看log文件
- linux erlang安装教程,linux(CentOS7)中安装erlang(20.3)以及rabbitmq(3.6.15)的步骤以及一些注意事项...
- pygame精灵组有哪些方法_利用 pygame 开发一款游戏:「跳跳兔」(六)
- 拓端tecdat|Python风险价值计算投资组合VaR(Value at Risk )、期望损失ES(Expected Shortfall)
- 极狐+华为,小鹏+大疆,极氪+mobileye,自动驾驶成为“风向标”
- 电脑软件推荐【含软件链接】:压缩,插件,截屏,录制,办公,电脑防护与修复,磁盘清理,软件卸载......
- matlab 整数规划 非线性,非线性整数规划matlab
- Android 使用OPENCV实现图像实时对比
- 低碳生活进行时!国产“芯”RK3568创造智慧出行新体验
- python图片转pdf
- Linux下文件丢失问题
- c语言realpath
- 视频编辑SDK,AE模版SDK,绿幕抠图SDK,AI人像分割SDK,VLOG模版SDK
热门文章
- 一年级男生上课不专心,说了很多次都不改!
- 统信UOS手动更新系统时备份失败,如何用命令自动更新系统
- torchnet tnt.Meter
- Mathpix Snipping Tool
- ASEMI场效应管7N60,7N60详细参数,7N60应用领域
- 解释hy(Xcms)内容管理系统中,后台manager文件夹中所有ftl页面中指令标签的调用,全部都用@ms.打头的原因
- 一个2D沙盒小游戏1.2
- shiro 721 反序列化漏洞复现与原理以及Padding Oracle Attack攻击加解密原理
- Python飞机大战实例有感——pygame如何实现“切歌”以及多曲重奏?
- 无线渗透(六)WPS、伪造AP