Bootstrap

树莓派上的自动化---自动发送IP地址到邮箱

初始环境设置

我们在树莓派上面直接通过vim来编辑代码,可能不是很方便(大佬除外)。因此我们想用宇宙第一编辑器--VSCode来进行代码的编写。

1. 安装【Remote - SSH】插件

安装方式很简单,直接在插件商店搜索并安装

2. 通过SSH登录到树莓派

添加我们的树莓派地址

然后我们点击在新窗口中打开远程桌面

3. 第一次需要选择操作系统

4. 然后输入密码登录成功

5. 第一次vscode还会自动在树莓派上搭建vscdoe的服务

看到如下内容表示登录成功

每个人的初始内容不一样。

编写Python代码

1. 安装代码提示插件

2. 获取QQ邮箱的SMTP服务信息

开启SMTP服务

关于SMTP的地址及端口号参考

3. 发送邮件部分的代码

import smtplib
from email.mime.text import MIMEText
import sys

mail_host = "smtp.qq.com"
mail_user = "你的邮箱@qq.com"
mail_pass = "你的安全密钥"

def send_mail(to,subject,body):
    me =  f"'树莓派小助手'<{mail_user}>"
    msg = MIMEText(body)
    msg['Subject'] = subject
    msg['From'] = me
    msg['To'] = to
    try:
        s = smtplib.SMTP_SSL(mail_host)
        s.connect(mail_host, "465")
        s.login(mail_user,mail_pass)
        s.sendmail(me,to,msg.as_string())
        s.close()
        return True
    except Exception as err:
        print(err)
        return False


if __name__ == "__main__":
    send_mail(sys.argv[1],sys.argv[2],sys.argv[3])

4. 编辑获取IP的myip.sh文件

#!/bin/bash
sleep 10
wlan0=`ifconfig wlan0 | head -n2 | grep inet | awk '{print$2}'`
eth0=`ifconfig eth0 | head -n2 | grep inet | awk '{print$2}'`

if ping -c 2 -W 3 www.baidu.com &> /dev/null ;then
python3 /home/ubuntu/tools/getIP.py "nbh_it@163.com" "树莓派已开机" "你的WIFI:$wlan0||你的有线:$eth0"
fi

/home/ubuntu/tools/根据每个人的实际路径进行修改

如果一切顺利的话你将收到一封邮件

添加开机启动

sudo mv myip.sh /etc/profile.d/

但是测试的时候,好像有点问题,等解决后再分享。

------------------------------------------------华丽de分割线---------------------------------------------

sudo vim /lib/systemd/system/rc-local.service

在文件尾部中加入

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

编辑文件(没有就创建一个)

sudo vim /etc/rc.local

添加内容(在exit 0之前)

#!/bin/sh

source /home/ubuntu/tools/myip.sh
exit 0

修改权限

sudo chmod +x /etc/rc.local

在/etc/systemd/system下创建软连接

sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/