<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; Раз в пять минут надо опрашивать сервер на жизнь и на нагрузку на нем]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11173</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11173&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Раз в пять минут надо опрашивать сервер на жизнь и на нагрузку на нем».]]></description>
		<lastBuildDate>Wed, 23 Dec 2015 12:49:43 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Раз в пять минут надо опрашивать сервер на жизнь и на нагрузку на нем]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99892#p99892</link>
			<description><![CDATA[<p>Идея проста. <br /></p><div class="codebox"><pre><code>
@echo off

setlocal

set &quot;MONITOR_LSTFILE=%~dpn0.txt&quot;
set &quot;MONITOR_LOGFILE=%~dpn0.log&quot;
set &quot;PING_COUNT=3&quot;
set &quot;MAIL_ADDRESS=test@example.ru&quot;

if /i &quot;%~1&quot; == &quot;monitor&quot; call :monitor.list &quot;%MONITOR_LSTFILE%&quot; &gt;&quot;%MONITOR_LOGFILE%&quot;
if /i &quot;%~1&quot; == &quot;sendmail&quot; call :monitor.sendmal &quot;%MAIL_ADDRESS%&quot; &quot;%MONITOR_LOGFILE%&quot;

echo:Usage: %~n0 monitor
echo:Usage: %~n0 sendmail

endlocal
goto :EOF

...
</code></pre></div><p>Дальше разберетесь сами.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Wed, 23 Dec 2015 12:49:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99892#p99892</guid>
		</item>
		<item>
			<title><![CDATA[Re: Раз в пять минут надо опрашивать сервер на жизнь и на нагрузку на нем]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99891#p99891</link>
			<description><![CDATA[<p><strong>Rumata</strong> Понял значит, нужно использовать крон или любое другое. А отправка логов на почту test@example.ru согласно справочнику макрософта происходит так ?</p><div class="codebox"><pre><code>:monitor.list
if not exist &quot;%~а1&quot; (
	echo:%~n0: %~f1: File not found
    send-mailmessage -to &quot;MainS &lt;test@example.ru&gt;&quot; -subject &quot;Ошибка с пингом или нагрузкой на сайт&quot; -Attachments %~dpn0.log
	goto :EOF
)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (dreamt)]]></author>
			<pubDate>Wed, 23 Dec 2015 12:34:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99891#p99891</guid>
		</item>
		<item>
			<title><![CDATA[Re: Раз в пять минут надо опрашивать сервер на жизнь и на нагрузку на нем]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99890#p99890</link>
			<description><![CDATA[<p>Задача скрипта - выполнить пинг и записать в лог-файл. Когда и как часто вызывать - задача системы, в случае Windows это Планировщик задач. </p><p>Еще по коду:<br /></p><div class="codebox"><pre><code>
set &quot;MONITOR_LSTFILE=%~dpn0.txt&quot;
set &quot;MONITOR_LOGFILE=%~dpn0.log&quot;
</code></pre></div><p>Эти строки утвеждают, что файл-списко хостов и лог-файл располагаются в одном со скриптом каталоге.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Wed, 23 Dec 2015 12:22:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99890#p99890</guid>
		</item>
		<item>
			<title><![CDATA[Re: Раз в пять минут надо опрашивать сервер на жизнь и на нагрузку на нем]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99889#p99889</link>
			<description><![CDATA[<p><strong>Rumata</strong> Спасибо большое!!! <br />вызов хосты пигуются, не пингуются через каждые 5 минут в моём случае timeout после цикла нужно установить?</p><div class="codebox"><pre><code>for /f &quot;usebackq&quot; %%h in ( &quot;%~1&quot; ) do (
		call :monitor.host &quot;%~f&quot;
	) 
timeout /t 300</code></pre></div><p>А как записывать данные о нагрузке на сервере? или же тут постоянный мониторинг происходит, насколько вижу по коду</p>]]></description>
			<author><![CDATA[null@example.com (dreamt)]]></author>
			<pubDate>Wed, 23 Dec 2015 12:01:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99889#p99889</guid>
		</item>
		<item>
			<title><![CDATA[Re: Раз в пять минут надо опрашивать сервер на жизнь и на нагрузку на нем]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99888#p99888</link>
			<description><![CDATA[<p>Для этого есть специализированные средства удаленного мониторинга систем, но это не значит, что нельзя писать свое. начните с общего описания задачи и двигайтесь по нисходящей, углубляясь в детали реализации.</p><p>А. Мониторинг доступности внешних систем и ежедневная оправка уведлмлений на почту</p><p>Это две отдельные и не связанные друг с другом задачи (хотя и могут быть выполнены одним приложением)</p><p>Б.1. Мониторинг доступности внешних систем из списка<br />Б.2. Ежедневная оправка почтовых сообщений</p><p>Идем дальше, рассмотрим подзадачу Б.1.</p><p>В.1.1. организуем список проверяемых систем (например, текстовый файл - одна строка один хост)<br />В.1.2. скрипт читает файл и для каждого хоста проверяет его доступность<br />в.1.3. для каждой проверки ведется журнал (время выполнения, команда, результат)</p><p>Важный момент: данные (список проверямых хостов) и программа, читающая этот список, расположены в разных файлах. Это хорошо, потому что позволяет отделить данные и логику. А изменение файла данных, не отражается на приложении (при неизменности логики приложения). </p><p>Вот первый вариант:</p><div class="codebox"><pre><code>
@echo off

setlocal

set &quot;MONITOR_LSTFILE=%~dpn0.txt&quot;
set &quot;MONITOR_LOGFILE=%~dpn0.log&quot;
set &quot;PING_COUNT=3&quot;

call :monitor.list &quot;%MONITOR_LSTFILE%&quot; &gt;&quot;%MONITOR_LOGFILE%&quot;

endlocal
goto :EOF

:monitor.list
if not exist &quot;%~а1&quot; (
	echo:%~n0: %~f1: File not found
	goto :EOF
)

(
	for /f &quot;usebackq&quot; %%h in ( &quot;%~1&quot; ) do (
		call :monitor.host &quot;%~f&quot;
	) 
) | find /i &quot;TTL=&quot;
goto :EOF

:monitor.host
ping -n %PING_COUNT% &quot;%~1&quot;
goto :EOF
</code></pre></div><p>И так далее... Теперь можно проверить работоспособность скрипта (хосты пигуются, не пингуются, файл-списко читается, лог файл создается). Дальше в этот скрипт можно добавить логику отправки писем. Это очень просто.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Wed, 23 Dec 2015 11:41:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99888#p99888</guid>
		</item>
		<item>
			<title><![CDATA[Раз в пять минут надо опрашивать сервер на жизнь и на нагрузку на нем]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99887#p99887</link>
			<description><![CDATA[<p>Здравствуйте, не ругайте сильно, так как не являюсь админом и ни разу не создавал аналогичных скриптов, ниже по советам и при помощи примеров смогу написать данный скрипт, есть ошибки в нём<br />Задача состоит в следующем:<br /><strong>1</strong> - раз в пять минут надо опрашивать сервера на жизнь (ping 3 пакета) и на нагрузку на нем<br /><strong>2</strong> - как создать список серверов и выполнять на каждом задачу <strong>1</strong><br /><strong>3</strong> - как записать логи с серверов в ping.txt с их ip и информацией ответа по пингу и нагрузки на нём и отсылать раз в день отчёт ping.txt на почту</p><br /><p>@echo off<br />ServersList = &quot;192.168.0.1, 176.155.211.1, 215.232.155.2&quot;<br />ping -n 3 217.69.139.202 &gt;&gt; ping.txt | find /i &quot;TTL=&quot;&gt;nul <br />if %errorlevel%==0 ( <br />send-mailmessage -from &quot;ip сервера&quot; -to &quot;MainS &lt;test@example.ru&gt;&quot;, &quot;MainS1 &lt;test1@example.com&gt;&quot; -subject &quot;Ошибка с пингом или нагрузкой на сайт&quot; -Attachments &quot;ping.txt&quot;<br />) else ( <br /> //выполнять и проверять очередной ping и нагрузку на сервер каждые 5 минут <br />)</p>]]></description>
			<author><![CDATA[null@example.com (dreamt)]]></author>
			<pubDate>Wed, 23 Dec 2015 09:53:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99887#p99887</guid>
		</item>
	</channel>
</rss>
