树梅派应用52:让树莓派自动上报IP地址到邮箱
来源:互联网 发布:广州seo外包eiaike 编辑:程序博客网 时间:2024/05/29 13:54
由于我使用树莓派的场景大多数是在没有显示器、只用terminal连接它的情况下,所以,它的IP地址有时会在重启之后变掉(DHCP的),导致我无法通过terminal连接上它。然后我又要很麻烦地登录路由器的管理界面里,去看它被分配到的新IP是什么,然后用terminal重连,太麻烦了,不是么?作为一个树莓派玩家,这种麻烦简直是无法接受的!
为了解决这个问题,我让Pi开机的时候,自动向我指定的Email发送一封邮件,告诉我它此次开机时的IP地址。
步骤: 开机时执行一个脚本,检测网络可用性→网络通畅后获取自己的IP地址→发送邮件到指定的邮箱。
下面一一道来。
『1』 开机启动项
开机执行一个脚本是怎么做到的?
只需要向 /etc/rc.local 文件中添加一句话,即可开机执行一个脚本了:
# send a mail to notify the IP address of Pi
/root/data/source/send-ip-mail
.sh >>
/root/data/source/send-ip-mail
.log 2>&1
『2』 上报IP地址的脚本实现
send-ip-mail.sh脚本的内容如下:
#!/bin/bash
# check network availability
while
true
do
TIMEOUT=5
SITE_TO_CHECK=
"www.126.com"
RET_CODE=`curl -I -s --connect-timeout $TIMEOUT $SITE_TO_CHECK -w %{http_code} |
tail
-n1`
if
[
"x$RET_CODE"
=
"x200"
];
then
echo
"Network OK, will send mail..."
break
else
echo
"Network not ready, wait..."
sleep
1s
fi
done
# get the IP address of eth0, e.g. "192.168.16.5"
ETH0_IP_ADDR=`
ifconfig
eth0 |
sed
-n
"2,2p"
|
awk
'{print substr($2,1)}'
`
# send the Email
echo
"Current time: `date '+%F %T'`. Enjoy it"
| mutt -s
"IP Address of Raspberry Pi: $ETH0_IP_ADDR"
xxx@gmail.com
脚本很简单,分为3部分:第一部分检测网络可用性;第二部分取树莓派的eth0网卡的IP地址;第三部分发送邮件到指定的Email。
其中,第一部分是必须要有的,因为经过我试验,在本脚本执行时,树莓派的网络还没有初始化好,此时你直接发邮件是发不出去的。在这里我通过访问www.126.com来确定网络可用性。
第三部分需要你预先配置好mutt和msmtp。
『3』 安装配置mutt和msmtp
配置好mutt和msmtp后,就可以像上面一样,通过一句代码将邮件发送出去。
首先要在Pi上安装mutt和msmtp:
pacman -S msmtp
pacman -S mutt
安装后,先配置msmtp。在你用户的根目录下创建文件 .msmtprc,内容如下:
account default
host smtp.126.com
from xxx@126.com
auth plain
user xxx@126.com
password your_password
logfile /var/log/msmtp.log
其中,smtp.126.com是我使用的邮箱的SMTP服务器地址,xxx@126.com是我用于发送邮件的邮箱,your_password是邮箱密码,你要根据你的情况修改。
然后配置mutt。在你用户的根目录下创建文件 .muttrc,内容如下:
set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="Alarm"
set editor="vim"
其中,realname是发件人的名字,接收到的邮件中会显示出来。
『4』 至此全部搞定,以后每次Pi开机的时候,就会“自报家门”,我们再也不愁找不到Pi啦!
- 树梅派应用52:让树莓派自动上报IP地址到邮箱
- 开机上报树梅派2的IP地址到邮箱
- 自动发IP地址到邮箱的脚本
- 工作环境搭建(6) - CentOS7开机自动发送IP地址到指定邮箱
- 树莓派自动发送ip到指定邮箱
- 树莓派实战2:发送ip地址到自己邮箱
- PI 开机后发送ip地址到指定邮箱
- 树莓派连接多个wifi并上报IP地址
- ROS自动备份到邮箱
- IP地址自动增长。
- 自动修改ip地址
- 自动设置IP地址
- IP地址自动配置
- android ip地址,手机号码,邮箱格式验证
- gethostbyname函数获取邮箱ip地址
- android ip地址,手机号码,邮箱格式验证
- android ip地址,手机号码,邮箱格式验证
- QQ邮箱查看好友/发件人IP地址
- Hello Mr.J——What do you want?Mycat~
- 多台linux电脑无密码互相登录
- java.lang.reflect.Type
- 将博客搬至CSDN
- Git教程学习(四)—版本控制
- 树梅派应用52:让树莓派自动上报IP地址到邮箱
- java ME、java SE和java EE的区别
- POJ 2728 Desert King(最优比例生成树)
- C++和QML混合编程
- 三分钟教你学Git(二十二) - 互动式改写历史
- day05--js数据类型
- PHP-redis中文文档
- NAPI 技术在 Linux 网络驱动上的应用和完善
- iOS多线程 -----------NSThread