Форум сайта python.su
0
Здравствуйте,
Помогите пожалуйста реализовать повторное выполнения команды через определенный промежуток времени. Другими словами что бы пинг проверялся каждые ~ 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 (Апрель 15, 2016 02:10:11)
Офлайн
0
Никто не поможет?
Офлайн
253
studdefА в чем помогать? Код есть, вроде рабочий. Претензий к коду вы не изложили.
Никто не поможет?
Офлайн
0
Код не совсем рабочий. Он становится рабочим если убрать time.sleep(05)
Если пользоваться системным планировщиком, то можно ограничиться if, else без while.
У меня же задача пинговать хост каждый час и если нет ответа от хоста завершать работу системы. И я хотел бы что бы код мог пинговать в течение 5 минут хост, если хост не отвечат на пинг, а после этого завершать работу системы. Как то так.
Офлайн
568
Запомнить время начала работы программы в переменной П,
исполнять некий код в цикле,
как только текущее время минус пять минут будет больше П прервать цикл и завершить программу.
Офлайн
0
FishHookнапишите, если не затруднит
Запомнить время начала работы программы в переменной П, исполнять некий код в цикле,как только текущее время минус пять минут будет больше П прервать цикл и завершить программу.
Отредактировано studdef (Апрель 16, 2016 21:08:08)
Офлайн
0
После запуска скрипт выполнят print(“client connect”) бесконечно даже когда хост уже выключен и не пингуется, не происходит отключение системы.
Офлайн
253
studdefА вы сами код писали? Насколько я понимаю вы и не проверяете в цикле пингуется клиент или нет.
После запуска скрипт выполнят print(“client connect”) бесконечно даже когда хост уже выключен и не пингуется, не происходит отключение системы.
Офлайн
0
doza_andСам писал, нашел модуль на просторах интернета pyping установил его. Прочитал что,
Отредактировано studdef (Апрель 17, 2016 14:34:32)
Офлайн
5
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)
Отредактировано r00tl3ss (Апрель 17, 2016 22:08:20)
Офлайн