Программа, отключающая Wi-Fi автоматически

Мне нужна помощь специалиста. С 00:00 до 6:00 у меня безлимитный Wi-Fi, именно тогда я начинаю загрузку. Обычно я загружаю фильмы с торрентов и файлов ISO, которые тестирую в это время. У меня вопрос: как остановить Wi-Fi в 6 утра, чтобы он отключил все? Потому что есть файлы, которые занимают до 20 ГБ, и они не заканчиваются за одну ночь, и мне приходится останавливать их на 6. Что мне делать в таком случае? Следует ли мне писать программу на Python или что-то изменить в настройках?

Мне действительно нужна помощь в этом, если кто-то знает программу, которую я могу загрузить, которая делает всю работу за меня, пожалуйста, скажите мне. Между прочим, я не могу войти в свой маршрутизатор tplink с веб-страницы, поэтому я должен попытаться найти приложение, спасибо.

0
задан 23 November 2020 в 20:11

2 ответа

Вот простая программа Python, которая включает Wi-Fi в 00:00, а затем выключает в 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, чтобы он запускался в фоновом режиме при запуске компьютера и продолжал работать. Сценарий автоматически завершает работу после выключения Wi-Fi в 06:00 ± 1 мин.

ПРИМЕЧАНИЕ. Сценарий проверяет текущий час каждые 1 мин, поэтому фактическое время, когда соединение Wi-Fi отключено или перезапущено, может быть задержано на 1 мин, если вы хотите, чтобы он проверял быстрее, вы можете изменить time.sleep (60) на, скажем, time.sleep (30) , чтобы он проверял время каждые 30 секунд .


ОБНОВЛЕНИЕ: (Чтобы выключить в 05:50), используйте следующее: вы можете настроить час и секунды по своему вкусу в строке , если now.hour == 5 и now.minute> = 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)

Добавление сценария в приложения STartup

  1. Проверьте версию Python с помощью команды which в терминале, для Python2 используйте: which python2 , для python3 используйте который python3 . Скопируйте местоположение питона. Terminal screenshot
  2. В списке приложений Ubuntu найдите «Автозагрузочные приложения» и запустите его.
  3. Добавьте новое приложение, выбрав «Добавить»
  4. Дайте вашему сервису запуска имя и введите команду для выполнения. Для меня, поскольку моя версия Python - 3, расположенная в / usr / local / bin / python3 с программой python в /Desktop/wifi.py , я использую следующее в команде : / usr / local / bin / python3 /Desktop/wifi.py
  5. Далее, просто добавьте службу. enter image description here

ОБНОВЛЕНИЕ: программа, отображающая сообщения только один раз. Добавленная функция: если Wi-Fi случайно отключается в то время, когда программа ожидает его включения, программа автоматически перезапускает Wi-Fi. Таким образом, программа также будет проверять интернет-соединение и предотвращать отключение Wi-Fi между включением и выключением.

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 .

1
ответ дан 3 January 2021 в 22:48

Самый простой способ - использовать задание cron.

Во-первых, укажите имя вашего беспроводного устройства с помощью ls / sys / class / net . Вы увидите что-то вроде:

eth0   lo   wlp3s0`

Затем введите crontab -e , чтобы открыть crontab, и добавьте эту строку:

59 05 * * * ifdown wlp3s0

Это отключит Wi-Fi в 5:59 утра.

0
ответ дан 3 January 2021 в 22:48

Другие вопросы по тегам:

Похожие вопросы: