我需要专家的帮助。凌晨 00 点到早上 6 点之间我的 WiFi 是无限的,这是我开始下载的时间。我通常会在这段时间从种子和 ISO 文件下载电影并进行测试。我的问题是如何在早上 6 点停止 WiFi 以便关闭所有内容?因为有些文件占用 20 GB,一个晚上下载不完,我必须在 6 点停止。在这种情况下我该怎么办?我应该编写一个 Python 程序还是应该在设置中更改某些内容?
我真的需要帮助,如果有人知道我可以下载的程序,可以帮我完成所有工作,请告诉我。顺便说一句,我无法从网页进入我的 tplink 路由器,所以我应该尝试找到一个应用程序,谢谢。
答案1
这是一个简单的 Python 程序,用于在 00:00 打开 wifi,然后在 06:00 关闭:
import os
import time
from datetime import datetime
import sys
while(1):
now = datetime.now()
if now.hour == 0:
print("Starting Wifi...\n")
os.system("nmcli radio wifi on")
if now.hour == 6:
print("Turning Wifi off...\n")
os.system("nmcli radio wifi off")
sys.exit()
time.sleep(60)
只需将其保存为.py
文件,然后将其添加到 Linux 系统的启动服务中,这样它在计算机启动时就会在后台启动并持续运行。该脚本将在 06:00 ± 1 分钟后自动终止关闭 wifi。
注意:脚本每 1 分钟检查一次当前小时数,因此 Wifi 连接跳闸或重启的实际时间可能会延迟 1 分钟,如果您希望它检查得更快,您可以将其更改为time.sleep(60)
每time.sleep(30)
30 秒检查一次。
if now.hour == 5 and now.minute >= 50:
更新:(要在 05:50 关闭),请使用以下命令,您可以在下面的代码行中根据自己的喜好调整小时和秒数:
import os
import time
from datetime import datetime
import sys
while(1):
now = datetime.now()
if now.hour == 0:
print("Starting Wifi...\n")
os.system("nmcli radio wifi on")
if now.hour == 5 and now.minute >= 50:
print("Turning Wifi off...\n")
os.system("nmcli radio wifi off")
sys.exit()
time.sleep(60)
将脚本添加到启动应用程序
which
通过终端中的命令检查您的 Python 版本,对于 Python2 使用:which python2
,对于 python3 使用which python3
。复制 python 的位置。- 在 Ubuntu 的应用程序列表中,查找启动应用程序并运行它。
- 选择“添加”添加新应用程序
- 为启动服务命名,然后输入要执行的命令。对我来说,由于我的 Python 版本是 3,位于 ,
/usr/local/bin/python3
python 程序位于/Desktop/wifi.py
,因此我在命令中使用以下内容:/usr/local/bin/python3 /Desktop/wifi.py
- 接下来只需添加服务。
更新:仅显示一次消息的程序。新增功能:如果在程序预期打开的时间内意外关闭 wifi,程序将自动重新启动 wifi。因此,程序还将检查互联网连接并防止 wifi 在打开和关闭时间之间关闭。
import os
import time
from datetime import datetime
import sys
import urllib.request
def connect(host='http://google.com'):
try:
urllib.request.urlopen(host) #Python 3.x
return 1
except:
return 0
preWifi = 0
while(1):
now = datetime.now()
wifi = connect()
if wifi == 1 and wifi != preWifi:
print('Wifi On.')
if now.hour == 0 and wifi != 1:
print("Starting Wifi...\t | Time", now, "\n")
os.system("nmcli radio wifi on")
print("Reconnecting...please stand by.\t | Time =", now, "\n")
while(not connect()):
time.sleep(0.5)
if now.hour == 5 and now.minute == 50 and wifi == 1:
print("Turning Wifi off...\t | Time", now, "\n")
os.system("nmcli radio wifi off")
sys.exit()
preWifi = wifi
time.sleep(1)
希望一切顺利!:D
要完全关闭消息,只需使用
.pyw
扩展名而不是 来保存程序.py
。
答案2
最简单的方法是使用 cron 作业。
首先,使用 识别您的无线设备的名称ls /sys/class/net
。您将看到类似以下内容的内容:
eth0 lo wlp3s0`
然后输入crontab -e
打开 crontab,并添加以下行:
59 05 * * * ifdown wlp3s0
这将在凌晨 5:59 关闭 WiFi。