Я пытаюсь написать скрипт Python, который будет ping/icmp IP-адресом и скажите, жив ли он. Я делаю это, потому что у меня прерывистая проблема. Я хотел выполнить ping, зарегистрировать результат, поспать на некоторое время и снова попробовать ping. Я пробовал цикл while, но все еще получаю такие ошибки:Python script - log failed icmp/ping response - problems
line 33, in (module) systemPing('192.168.1.1')
line 30, in systemPing time.sleep(30)
KeyboardInterrupt
Я использую Python 2.6.
В идеале, мой вопрос заключается в том, как я прохожу через этот метод/функцию systemPing и какие ошибки есть в моем коде? Сценарий работает, но я получаю эти ошибки, когда я нажимаю ctrl-c.
from subprocess import Popen, PIPE
import datetime, time, re
logFile = open("textlog.txt", "a")
def getmyTime():
now = datetime.datetime.now()
return now.strftime("%Y-%m-%d %H:%M \n")
startTime = "Starting ..." + getmyTime()
logFile.write(startTime)
logFile.write("\n")
def systemPing(x):
cmd = Popen("ping -n 1 " + x , stdout=PIPE)
#print getmyTime()
for line in cmd.stdout:
if 'timed out' in line:
loggedTime = "Failure detected - " + getmyTime()
logFile.write(loggedTime)
if 'Reply' in line:
print "Replied..."
logFile.close()
print "Sleeping 30mins ... CTRL C to end"
time.sleep(30) #1800 is 30mins
systemPing('192.168.1.1')
if __name__ =='__main__':
systemPing('192.168.1.1')
Любая помощь всегда приветствуется. Спасибо.
Хорошо, я понимаю. Мне было интересно, почему это работает, но все же я получаю то, что я воспринимаю как ошибки. Я не думал об этом, но никогда не использовал его. Я отредактирую скрипт и тест. Спасибо. – user2105764
Этот оператор try/except не работает. Он просто запускается один раз и выходит. На положительной ноте; без ошибок. – user2105764
@ user2105764 Не должно быть петли. Я думал, вы просто хотите разрешить CTRL-C выйти из программы без сообщения об ошибке. Вы действительно хотите отключить CTRL-C? – Aya