admin管理员组文章数量:1625801
方法的实现基本基于博主虚宇宸轩的【实现】树莓派开机自动向微信发消息报告ip地址(无第三方代理),具体原理和操作过程,请参考该博主的文章,写得很详细,原理解释的也很清楚。本文只是记录具体实现的过程中遇到的问题及其解决方式。
环境:树莓派4B、树莓派官方Raspberry Pi OS Lite(32-bit)
1、树莓派4B上存放的脚本源码
创建一个脚本文件autoIP.sh(名字可以随便取),存放在树莓派4B的文件目录下,比如我放在了“/home/pi”目录下。脚本文件的内容如下:
#!/bin/bash
###########################################
##### created by RichardYann #####
##### 2020-11-11 #####
##### EmaiL:yanrichard500@gmail #####
###########################################
# set PATH
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
# Global Variables
corpid=XXXXXXXXXXX #替换成你自己的
AgentId=XXXXXXXXXX #替换成你自己的
Secret=XXXXXXXXXXX #替换成你自己的
getTokenURL="https://qyapi.weixin.qq/cgi-bin/gettoken?corpid=$corpid&corpsecret=$Secret"
# check netstat
while true;do
if [ `hostname -I|grep 192.168` == "" ]; then
echo "net is null"
sleep 1
else
break
fi
done
# get token
temp=`curl $getTokenURL`
if [ -n `echo $temp|awk -F \":\" '{print $3}'` ];then
access_token=`echo $temp|awk -F \":\" '{print $3}'|awk -F \",\" '{print $1}'`
fi
# get postURL
PostURL="https://qyapi.weixin.qq/cgi-bin/message/send?access_token=$access_token"
# get ip; change $1 to $2 if you wanna get ipv6 addr.(if you had)
IP=$(echo `hostname -I|awk -F ' ' '{print $1}'`)
DATE=$(echo `date`)
# send post
curl -H "Content-type: application/json" -X POST -d '{"touser":"@all","msgtype":"text","agentid":"'"$AgentId"'","text":{"content":"树莓派已经启动啦!!\n\n当前时间:'"$DATE"'\n\nIP地址是:'"$IP"'\n\n快点连接控制吧~~"},"safe":0}' $PostURL
针对原文博主代码的修改:
1、博主的源代码在执行的时候,会循环报错“inet is not a command”,应该是循环判断网络连接状态那部分出了问题,我对这部分循环做了修改,保证正常执行。
2、最后发送的消息部分添加了当前时间信息。
2、脚本的开机自动执行实现方式
1、执行crontab -e
2、在最后一行添加如下代码:
3、关机重启,可以收到微信消息
一些说明:
1、网上很多linux开机自动执行脚本的实现方法,我尝试了修改/etc/rc.local文件,在其最后添加脚本执行命令,但并不成功。
2、crontab的方法,我按照原文博主的方式,也不行。但是使用crontab定时执行没有问题。
3、调试中发现脚本可以顺利执行,只是手机收不到信息。感觉是在脚本执行时,由于刚刚开机,有些环境还未准备好,所以脚本执行没有结果。在网上查了很多资料,尝试在脚本执行命令前添加sleep 60
,这次可以成功收到微信消息。我将时间改小为30s也可以成功运行。至于这个时间还能否继续再小,没有尝试。
版权声明:本文标题:树莓派4B开机自动发微信报告ip地址 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728933831a1180508.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论