14.9.07

Автоматизирана проверка на процесите+ping

Един познат ме помоли да направя програма, която да проверява определени процеси, дали са живи и ако не са да ги пуска и да го уведомява по мрежата. Освен това да прави проверка дали има пинг към две IP-та.

Обикновено подобни задачи ги изпълнявам на един не особено популярен скриптов език - AutoIt. За да разберете, колко е лесно, да се създават подобни приложения, ето и конкретния пример опростен, до един процес и едно IP за пинг:

While 1   ;Стартиране на безкраен цикъл
$PID = ProcessExists("process.exe")   ;Проверка за статуса на процеса
If $PID = 0 Then   ;Ако статусът е нула, следователно процесът не е активен
Run ("C:\process.exe")   ;Стартиране на процеса наново
Run ("send.cmd")   ;изпращане на съобщения към администратора, чрез net send команда, поставена в cmd файл
EndIf

$ping=Ping("86.59.28.43")   ;Ping-ване на IP-то
if $ping=0 Then
run ("sendping.cmd")   ;При липса на ping изпращане на съобщения към админстратора, чрез net send команда, поставена в cmd файл

EndIf
sleep(50000)   ;Период на пауза - в случая 50 секунди
Wend   ;Край на цикъла

В send.cmd и netsend.cmd има следното съобщение:
net send pc270145 Procesut e restartiran!

Където pc270145 всъщност може да бъде всякакво име на компютър или IP на където да пусне съобщението.

Няма коментари: