<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Prowl – Yeri Tiete</title>
    <link>https://yeri.be/tag/prowl/</link>
    <description>Yeri Tiete&#39;s blog</description>
    <language>en</language>
    <copyright>© Yeri Tiete</copyright>
    <lastBuildDate>Sun, 30 Aug 2009 11:35:57 +0200</lastBuildDate>
    <atom:link href="https://yeri.be/tag/prowl/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Prowl: check server status (using ping)</title>
      <link>https://yeri.be/prowl-check-server-status-using-ping/</link>
      <pubDate>Sun, 30 Aug 2009 11:35:57 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/prowl-check-server-status-using-ping/</guid>
      <description>&lt;p&gt;Yesterday I&amp;rsquo;ve start using &lt;a href=&#34;http://prowl.weks.net/&#34; target=&#34;_blank&#34;&gt;Prowl&lt;/a&gt;, as I heard good comments about it.  And one of the things I want it to check, are my server statuses.  I made a quick script using bash and crontab to check every 10 min if it replies on ping.  Per server, I created &amp;ldquo;host.domain.tld.sh&amp;rdquo; (e.g. zero.rootspirit.com.sh), and added this in the file:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-BASH&#34; data-lang=&#34;BASH&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/bin/bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;YourApiKey&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;HOST&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;zero.rootspirit.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ping -c &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$HOST&lt;/span&gt;   &lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&amp;gt;/dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$?&lt;/span&gt; -ne &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -k -s &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://prowl.weks.net/publicapi/add?apikey=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$KEY&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;amp;application=Server%20Connectivity%20Failure&amp;amp;event=&amp;amp;description=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$HOST&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;amp;priority=2&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Of course, change KEY to &lt;a href=&#34;https://prowl.weks.net/settings.php&#34; target=&#34;_blank&#34;&gt;your API&lt;/a&gt; key, HOST to the IP or DNS of the server it should ping.  Also, make sure, that when pinging on your host where you&amp;rsquo;ll run the bash script on, a non-existing domain actually returns:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Yesterday I&rsquo;ve start using <a href="http://prowl.weks.net/" target="_blank">Prowl</a>, as I heard good comments about it.  And one of the things I want it to check, are my server statuses.  I made a quick script using bash and crontab to check every 10 min if it replies on ping.  Per server, I created &ldquo;host.domain.tld.sh&rdquo; (e.g. zero.rootspirit.com.sh), and added this in the file:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-BASH" data-lang="BASH"><span class="line"><span class="cl"><span class="cp">#!/bin/bash
</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">KEY</span><span class="o">=</span>YourApiKey
</span></span><span class="line"><span class="cl"><span class="nv">HOST</span><span class="o">=</span>zero.rootspirit.com
</span></span><span class="line"><span class="cl">ping -c <span class="m">1</span> <span class="nv">$HOST</span>   <span class="p">&amp;</span>&gt;/dev/null
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> <span class="nv">$?</span> -ne <span class="m">0</span> <span class="o">]</span> <span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl">curl -k -s <span class="s2">&#34;https://prowl.weks.net/publicapi/add?apikey=</span><span class="nv">$KEY</span><span class="s2">&amp;application=Server%20Connectivity%20Failure&amp;event=&amp;description=</span><span class="nv">$HOST</span><span class="s2">&amp;priority=2&#34;</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span></code></pre></div><p>Of course, change KEY to <a href="https://prowl.weks.net/settings.php" target="_blank">your API</a> key, HOST to the IP or DNS of the server it should ping.  Also, make sure, that when pinging on your host where you&rsquo;ll run the bash script on, a non-existing domain actually returns:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-BASH" data-lang="BASH"><span class="line"><span class="cl">ping: unknown host ezfzigjagaqg.reg
</span></span></code></pre></div><p>instead of</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-BASH" data-lang="BASH"><span class="line"><span class="cl">PING ezfzigjagaqg.reg.rootspirit.com <span class="o">(</span>85.12.6.130<span class="o">)</span> 56<span class="o">(</span>84<span class="o">)</span> bytes of data.
</span></span></code></pre></div><p>(Should depend on the search line in /etc/resolv.conf)  As I&rsquo;m pinging about 6 servers I created the file &ldquo;checkServers.sh&rdquo; with this content:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-BASH" data-lang="BASH"><span class="line"><span class="cl"><span class="cp">#!/bin/bash
</span></span></span><span class="line"><span class="cl"><span class="cp"></span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/zero.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/one.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/two.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/four.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/vm0.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/vm1.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span></code></pre></div><p>Make sure to chmod +x *.sh, to make it executable, and edit crontab and add something like that:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-BASH" data-lang="BASH"><span class="line"><span class="cl">*/10	*	*	*	*	/home/yeri/prowl/checkServers.sh <span class="p">&amp;</span>&gt;/dev/null
</span></span></code></pre></div><p>Don&rsquo;t forget to test it whether it works or not (try non-existing domain(s), and run the script again).</p>
]]></content:encoded>
      <category>apple</category><category>linux</category><category>networking</category><category>software</category>
      <category>bash</category><category>cron</category><category>crontab</category><category>iphone</category><category>prowl</category><category>server status</category>
    </item>
    
  </channel>
</rss>
