Docker - 青龙面板之自动运行Python脚本发送本机公网IP地址
家里不是固定的公网IP地址,所以公网IP总是到期了就变化。年轻的时候把3389映射出去,通过公网IP地址远程桌面连接到家里的电脑。怎么获取公网IP地址难住了当时的我,所以用Python写了获取公网IP地址然后发送邮件的脚本,在windows上测试没问题以后就在NAS中设置任务计划,每天执行一次,邮件通知我当天的公网IP地址。
脚本内容如下,大概原理就是先通过打开查询IP地址的网页,截取IP地址,重新编好文字以后通过SMTP邮件服务登陆邮箱发出来。
#!usrbinpython3
#coding=utf-8
from urllib import request
import re
import smtplib
from email.mime.text import MIMEText
from email.header import Header
url = str(request.urlopen(r'http://txt.go.sohu.com/ip/soip').read())
ip = re.findall(r'd+.d+.d+.d+', url)
print(ip[0])
# 第三方 SMTP 服务
mail_host='smtp.yeah.net' #邮件发件服务器
mail_user='xxxxxx@yeah.net' #用户名
mail_pass='xxxxxx' #邮箱密码
sender = 'xxxxxx@yeah.net' #和上面的用户名一致
receivers = ['xxxxxx@yeah.net'] # 接收邮件
message = MIMEText('家里公网IP地址是 '+ip[0], 'plain', 'utf-8')
message['From'] = f"{Header('xxx-NAS', 'utf-8')} <{sender}>"
message['To'] = Header("xx", 'utf-8')
message['Subject'] = Header("家里公网IP地址通知", 'utf-8')
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25) # SMTP 端口号
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print ("Sucess")
except smtplib.SMTPException:
print ("Error")
办法很土,但这确实是我上学时候第一次用Python呢。把Python脚本文件“PublicIP.py”放到NAS固定的路径下,如图设置一个定期执行的任务,这就可以了。


现在咱们试一下用青龙面板,代替群晖中的任务计划,定时实现相同的功能。
首先登陆青龙面板,左边选择脚本管理,右边点击加号选择创建脚本,点击本地文件,然后上传刚才的“PublicIP.py”脚本,然后即可在网页中看到和编辑脚本。


下一步创建定时任务,左侧点击定时任务,右侧选择创建任务,填写任务名称,脚本名称,以及定时类型和规则,这里为了测试,先选择手动运行吧。


点击右侧“运行”,点击确定后即运行了脚本,任务状态会变成“运行中”。
然后点击右侧的“日志”即可查看结果。



登陆邮箱即可看到自动发出的邮件。

测试成功以后,回到任务设置,修改定时类型为“常规定时”,定时规则为“0 0 9 * * *”即每天早上9点整。

青龙面板是通过Cron表达式来定义任务的周期性执行规则。Cron表达式由5或6个字段组成(部分实现支持7个字段),每个字段代表不同的时间单位(秒、分、时、日、月、周等)。
示例:
0 0 8 * * *:每天8点执行。*/10 * * * *:每10分钟执行一次。0 0 23 * *:每天23点执行。

纳兰
校验提示文案
mayonglei
校验提示文案
死鱼0570
校验提示文案
侠客行小黑哥
校验提示文案
麦乐酷的理想生活
校验提示文案
值友1749065962
校验提示文案
神评在哪里
校验提示文案
needntSM
校验提示文案
大熊文
校验提示文案
风无常
校验提示文案
四脚吞金兽愁啊
校验提示文案
如颜挽歌
校验提示文案
没得取
校验提示文案
四脚吞金兽愁啊
校验提示文案
风无常
校验提示文案
没得取
校验提示文案
大熊文
校验提示文案
mayonglei
校验提示文案
纳兰
校验提示文案
如颜挽歌
校验提示文案
needntSM
校验提示文案
神评在哪里
校验提示文案
值友1749065962
校验提示文案
麦乐酷的理想生活
校验提示文案
死鱼0570
校验提示文案
侠客行小黑哥
校验提示文案