树莓派开机启动,获取本地IP地址和外网IP地址;可以实现配置反向代理或者隧道实现远程访问;

1、配置邮件,见我之前分享的链接;

语雀内容

2、编写获取IP地址的脚本sendip.sh

  1. #!/bin/bash
  2. #check network availability
  3. #当前时间
  4. CURRENT_TIME=$(date "+%Y-%m-%d %H:%M:%S")
  5. #读取设备hostname
  6. HOSTNAME=$(hostname)
  7. #日志记录目录
  8. LOG="/home/pi/Program/log/sendip.log"
  9. while true
  10. do
  11. RET_CODE=$(curl -I -s --connect-timeout 5 www.baidu.com -w %{http_code} | tail -n1)
  12. if [ $RET_CODE = "200" ]; then
  13. echo $CURRENT_TIME "Network OK, will send mail..." >$LOG 2>&1
  14. break
  15. else
  16. echo $CURRENT_TIME "Network not ready, wait..." >$LOG 2>&1
  17. sleep 1s
  18. fi
  19. done
  20. # 获取外网IP
  21. OUT_SIDEIP=$(curl -s -retry 10 -retry-delay 2 myip.ipip.net)
  22. echo $CURRENT_TIME "外网地址:"$OUT_SIDEIP >$LOG 2>&1
  23. # 获取内网IP
  24. INSIDE_IP=$(LC_ALL=C ifconfig | grep "inet addr:" | grep -v "127.0.0.1" | cut -d: -f2 | awk '{print $1}')
  25. INSIDE_IP2=$(LC_ALL=C ifconfig | grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" | grep -v "127.0.0.1" | cut -d: -f2 | awk '{print $2}' | head -n 1)
  26. if [ -z $INSIDE_IP ]; then
  27. INSIDE_IP=$INSIDE_IP2
  28. echo $CURRENT_TIME "内网地址:"$INSIDE_IP >$LOG 2>&1
  29. fi
  30. # send the Email
  31. echo -e "设备ID:"$HOSTNAME"\n当前时间:"$CURRENT_TIME"\n外网IP:"$OUT_SIDEIP"\n内网IP:"$INSIDE_IP | mutt -s "电子秤 $HOSTNAME 开机 IP地址上报" test@qq.com

3、给脚本添加可执行权限

  1. chmod 777 sendip.sh

4、配置开机启动

语雀内容