Инструменты пользователя

Инструменты сайта


watchdog

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия Следующая версия справа и слева
watchdog [2019/12/11 12:56]
nightfly [Использование One-Punch скриптов]
watchdog [2020/02/13 18:26]
nightfly [Использование One-Punch скриптов]
Строка 484: Строка 484:
 \\ \\
 Также есть еще одно небольшое ограничение относящееся не только к данным возвращаемым One-Punch скриптами,​ а также и к таким типам проверок как script и httpget. Ограничение заключается в том, что операторы changed и notchanged не работают адекватно если объем возвращаемых этими проверками данных составляет более 255 байт. Поэтому если вы собираетесь использовать эти операторы для контроля измений в данных возвращаемых вышеуказанными типами проверок,​ вам следует это учитывать при разработке ваших скриптов. Для проверок типа like или скажем notempty это не важно. Также есть еще одно небольшое ограничение относящееся не только к данным возвращаемым One-Punch скриптами,​ а также и к таким типам проверок как script и httpget. Ограничение заключается в том, что операторы changed и notchanged не работают адекватно если объем возвращаемых этими проверками данных составляет более 255 байт. Поэтому если вы собираетесь использовать эти операторы для контроля измений в данных возвращаемых вышеуказанными типами проверок,​ вам следует это учитывать при разработке ваших скриптов. Для проверок типа like или скажем notempty это не важно.
 +
 +Вот например то же самое снятие данных о трафике с порта, но в виде One-Punch скрипта:​
 +
 +<code php>
 +//config section
 +$port='​8';​
 +$oid='​.1.3.6.1.2.1.31.1.1.1.6';​
 +$ip='​192.168.18.234';​
 +$community='​changeme';​
 +//end of config
 +
 +$cmd='/​usr/​local/​bin/​snmpwalk -v2c -On  -c '​.$community.'​ '​.$ip.'​ '​.$oid.'​.'​.$port;​
 +$raw=shell_exec($cmd);​
 +$newTime=time();​
 +if (!empty($raw)) {
 +$raw=explode('​Counter64:',​$raw);​
 +$raw=trim($raw[1]);​
 +if (!empty($raw)) {
 + $cacheName='​content/​documents/​myscripts/​octets_'​.$ip.'​_'​.$port;​
 + if (file_exists($cacheName)) {
 + $oldTime=filemtime($cacheName);​
 + $oldOctets=file_get_contents($cacheName);​
 + $traffDiff=$raw-$oldOctets;​
 + $timeDiff=$newTime-$oldTime;​
 + if ($timeDiff!=0) {
 + $speed=($traffDiff*8*100)/​($timeDiff*10000);​
 + $watchdogCallbackResult=round($speed/​10000);​
 + } else {
 + $watchdogCallbackResult='​-1';​
 + }
 +     file_put_contents($cacheName,​$raw);​
 + } else {
 + file_put_contents($cacheName,​$raw);​
 + $watchdogCallbackResult='​0';​
 + }
 +}
 +
 +}
 +
 +</​code>​
watchdog.txt · Последние изменения: 2020/10/03 13:42 — nightfly