Найти - Пользователи
Полная версия: Таймер выполнения pyping
Начало » Python для новичков » Таймер выполнения pyping
1 2
studdef
Здравствуйте,
Помогите пожалуйста реализовать повторное выполнения команды через определенный промежуток времени. Другими словами что бы пинг проверялся каждые ~ 20 минут и проверял состояния хоста.
Если ответа нет, то пробывать еще 10 минут и отключать систему(windows)
Вот мой код. Буду очень благодарен, если объясните как эта можно сделать.
# 2.7.11
import pyping
import subprocess
import time

ip = pyping.ping('192.168.1.1')

while True:
if ip.ret_code == 0 :
print("client connect")
time.sleep(05)

else:
time = 10
subprocess.call(["shutdown.exe", "/s", "/f" ,"/t", str(time)])
studdef
Никто не поможет?
doza_and
studdef
Никто не поможет?
А в чем помогать? Код есть, вроде рабочий. Претензий к коду вы не изложили.
Такие задачи решает системный планировщик задач. Питон тут не при чем.
http://windows.microsoft.com/ru-ru/windows/schedule-task#1TC=windows-7
если уж очень хочется есть модуль https://docs.python.org/2/library/sched.html.
studdef
Код не совсем рабочий. Он становится рабочим если убрать time.sleep(05)
Если пользоваться системным планировщиком, то можно ограничиться if, else без while.
У меня же задача пинговать хост каждый час и если нет ответа от хоста завершать работу системы. И я хотел бы что бы код мог пинговать в течение 5 минут хост, если хост не отвечат на пинг, а после этого завершать работу системы. Как то так.
FishHook
Запомнить время начала работы программы в переменной П,
исполнять некий код в цикле,
как только текущее время минус пять минут будет больше П прервать цикл и завершить программу.
studdef
FishHook
Запомнить время начала работы программы в переменной П, исполнять некий код в цикле,как только текущее время минус пять минут будет больше П прервать цикл и завершить программу.
напишите, если не затруднит
studdef
После запуска скрипт выполнят print(“client connect”) бесконечно даже когда хост уже выключен и не пингуется, не происходит отключение системы.
doza_and
studdef
После запуска скрипт выполнят print(“client connect”) бесконечно даже когда хост уже выключен и не пингуется, не происходит отключение системы.
А вы сами код писали? Насколько я понимаю вы и не проверяете в цикле пингуется клиент или нет.
studdef
doza_and
Сам писал, нашел модуль на просторах интернета pyping установил его. Прочитал что,
если ip.ret_code == 0 то хост онлайн, если же ip.ret_code == 1, то оффлайн. Я не знаю как сделать что бы пинговать хост время от времени и когда нет отклика отключать комп.

Зачем я эта делаю? у меня есть старый комп Pentium IIII под управлением Windows xp , который выполняет роль внешнего хранилища( типа NAS) с него воспроизводится мультимедиа на смарт тв. Вот у меня возникла необходимость отключать Pentium IIII, когда телевизор выключается.

Планировщик в xp эта не удобно и я его отключил как службу что бы ускорить работу и без того старого железа) ну и + ко всему я не так давно стал изучать python.
r00tl3ss
import pyping
import time
import subprocess
import sys
def status(destination):
    return pyping.ping(destination).ret_code
def pinger(destination, timeout1, timeout2):
    while True:
        count = 0
        while status(destination):
            if count >= timeout2:
                subprocess.call(['shutdown.exe', '/s', '/f', '/t', '10'])
                sys.exit()
            time.sleep(60)
            count += 1
    print 'Destination ip {0} is availabel...'.format(destination)
    time.sleep(timeout1*60)
 
if __name__ == '__main__':
    pinger('127.0.0.1', 20, 5)
Как то вот так должно работать, но буду честен, работоспособность не проверял)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB