树莓派4B开机自动发微信报告ip地址

方法的实现基本基于博主虚宇宸轩的【实现】树莓派开机自动向微信发消息报告ip地址(无第三方代理),具体原理和操作过程,请参考该博主的文章,写得很详细,原理解释的也很清楚。本文只是记录具体实现的过程中遇到的问题及其解决方式。

环境:树莓派4B、树莓派官方Raspberry Pi OS Lite(32-bit)

1、树莓派4B上存放的脚本源码

创建一个脚本文件autoIP.sh(名字可以随便取),存放在树莓派4B的文件目录下,比如我放在了“/home/pi”目录下。脚本文件的内容如下:

#!/bin/bash
###########################################
#####      created by RichardYann     #####
#####            2020-11-11           #####
#####  EmaiL:[email protected]  #####
###########################################

# 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.com/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.com/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、关机重启,可以收到微信消息
树莓派4B开机自动发微信报告ip地址_第1张图片

一些说明:
1、网上很多linux开机自动执行脚本的实现方法,我尝试了修改/etc/rc.local文件,在其最后添加脚本执行命令,但并不成功。
2、crontab的方法,我按照原文博主的方式,也不行。但是使用crontab定时执行没有问题。
3、调试中发现脚本可以顺利执行,只是手机收不到信息。感觉是在脚本执行时,由于刚刚开机,有些环境还未准备好,所以脚本执行没有结果。在网上查了很多资料,尝试在脚本执行命令前添加sleep 60,这次可以成功收到微信消息。我将时间改小为30s也可以成功运行。至于这个时间还能否继续再小,没有尝试。

你可能感兴趣的:(微信,树莓派)