<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
   <head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
	   <link href="/websvn/templates/Claranet/styles.css" rel="stylesheet" media="screen">
      <!--[if gte IE 5.5000]>
      <script type="text/javascript" src="/websvn/templates/Claranet/png.js"></script>
      <![endif]-->
      <title>
         WebSVN
            - Installations-Machines
               - Rev 7 -
         /Scripts/check-mounts.pl
      </title>

   <script>
      function setSubmit()
      {
         if (document.getElementById('comparesubmit'))
         {
            count = 0
            f = document.getElementById('compareform')
            for (i = 0 ; i < f.elements.length ; i++)
            if (f.elements[i].type == 'checkbox' && f.elements[i].checked)
            {
               count += 1
            }
            
            if (count == 2)
            {
               document.getElementById('comparesubmit').disabled = false
            }
            else
            {
               document.getElementById('comparesubmit').disabled = true
            }
         }
      }   
   
      function checkCB(chBox)
      {
         count = 0
         first = null
         f = chBox.form
         for (i = 0 ; i < f.elements.length ; i++)
         if (f.elements[i].type == 'checkbox' && f.elements[i].checked)
         {
            if (first == null && f.elements[i] != chBox)
               first = f.elements[i]
            count += 1
         }
         
         if (count > 2) 
         {
            first.checked = false
            count -= 1
         }
         
         if (count == 2)
         {
            if (document.getElementById('comparesubmit') != null) document.getElementById('comparesubmit').disabled = false
         }
         else
         {
            if (document.getElementById('comparesubmit') != null) document.getElementById('comparesubmit').disabled = true
         }
      }
   </script>

   </head>
   <body onload="setSubmit()">
   <hr>

<div align="right"><form action="/wsvn" method="post" name="projectform"><select name="rep"><option value="0" >AdminInstall</option><option value="1" >analyseur_mail_queue_postfix</option><option value="2" >auth-claranet</option><option value="3" >Backups-Rsync</option><option value="4" >CablesDB</option><option value="5" >cdeliver</option><option value="6" >cdeliver2</option><option value="7" >check_updates</option><option value="8" >Claradmin</option><option value="9" >Claranet-Auth-Sync</option><option value="10" >Claranet-Diagrams</option><option value="11" >Claranet-Mail</option><option value="12" >Claranet-Scripts</option><option value="13" >Command-Center</option><option value="14" >Compaqnet</option><option value="15" >completelDsl</option><option value="16" >Configs-Backups</option><option value="17" >cpop</option><option value="18" >cpop-ng</option><option value="19" >DNS-Scripts</option><option value="20" >EasyBiz-2000</option><option value="21" >EasyBiz-2004</option><option value="22" >Firewalls-Linux</option><option value="23" >FreeBSD-Administration</option><option value="24" >Freesurf-Cleaner</option><option value="25" >Freesurf-Mail</option><option value="26" >IGH</option><option value="27" >IGH_v2</option><option value="28" >imap-ng</option><option value="29" selected>Installations-Machines</option><option value="30" >IP_ACCOUNTING_SWITCH_POLL</option><option value="31" >libEasy</option><option value="32" >Logs-Sync</option><option value="33" >Mail-Backups</option><option value="34" >Mail-Delivery-Stats</option><option value="35" >Mail-Tools</option><option value="36" >Nagios</option><option value="37" >Planning-Astreintes</option><option value="38" >Postfix-Policy-Daemons</option><option value="39" >radius</option><option value="40" >Schemas-Baies</option><option value="41" >SMS-ALARM</option><option value="42" >svn.fr.clara.net</option><option value="43" >Systems-Misc</option></select><input type="submit" value="Go"><input type="hidden" name="selectproj" value="1"><input type="hidden" name="op" value="form"><input type="hidden" name="sc" value="0"></form></div>
<h2>Installations-Machines</h2>
[<a href="/wsvn/Installations-Machines/?rev=0&amp;sc=0">/]</a> [<a href="/wsvn/Installations-Machines/Scripts/?rev=0&amp;sc=0">Scripts/]</a> [<b>check-mounts.pl</b>] - Rev 7
<p>
<a href="/wsvn/Installations-Machines/Scripts/check-mounts.pl?op=diff&amp;rev=0&amp;sc=0">Compare with Previous</a> - <a href="/wsvn/Installations-Machines/Scripts/check-mounts.pl?op=blame&amp;rev=0&amp;sc=0">Blame</a>
<p>
<hr>
<table width="100%" border=0><tr><td class="row0">
<PRE>
<I><FONT COLOR="#B22222">#!/usr/bin/perl -w
</FONT></I>

<B><FONT COLOR="#A020F0">use</FONT></B> constant TIME_OUT =&gt; 2;
<B><FONT COLOR="#A020F0">use</FONT></B> constant SIZE		 =&gt; 7;

<B><FONT COLOR="#A020F0">use</FONT></B> constant STATUS_OK        =&gt; 0;
<B><FONT COLOR="#A020F0">use</FONT></B> constant STATUS_WARNING   =&gt; 1;
<B><FONT COLOR="#A020F0">use</FONT></B> constant STATUS_CRITICAL  =&gt; 2;
<B><FONT COLOR="#A020F0">use</FONT></B> constant STATUS_UNKNOW    =&gt; 3;
<B><FONT COLOR="#A020F0">use</FONT></B> constant STATUS_DEPENDANT =&gt; 4;


<B><FONT COLOR="#A020F0">use</FONT></B> strict;

<B><FONT COLOR="#A020F0">my</FONT></B> @errors;
<B><FONT COLOR="#A020F0">my</FONT></B> @stats;
<B><FONT COLOR="#A020F0">my</FONT></B> $nfs;
<I><FONT COLOR="#B22222"># Récupération des partitions montées actuellement
</FONT></I>
<B><FONT COLOR="#A020F0">my</FONT></B> $mount;

<B><FONT COLOR="#A020F0">if</FONT></B> (-<B><FONT COLOR="#A020F0">x</FONT></B> <B><FONT COLOR="#BC8F8F">'/sbin/mount'</FONT></B>) { $mount = <B><FONT COLOR="#BC8F8F">'/sbin/mount'</FONT></B>; }
<B><FONT COLOR="#A020F0">elsif</FONT></B> (-<B><FONT COLOR="#A020F0">x</FONT></B> <B><FONT COLOR="#BC8F8F">'/bin/mount'</FONT></B>) { $mount = <B><FONT COLOR="#BC8F8F">'/bin/mount'</FONT></B>; }
<B><FONT COLOR="#A020F0">else</FONT></B> { <B><FONT COLOR="#A020F0">die</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;ERR Unable to find the mount command\n&quot;</FONT></B>; }

<B><FONT COLOR="#A020F0">my</FONT></B> %mounts;

<B><FONT COLOR="#A020F0">open</FONT></B> F, <B><FONT COLOR="#BC8F8F">&quot;${mount} |&quot;</FONT></B>;

<I><FONT COLOR="#B22222"># On charge toutes les partitions montées sur la machine
</FONT></I><I><FONT COLOR="#B22222">#  pour vérifier ensuite la concordance avec /etc/fstab
</FONT></I><B><FONT COLOR="#A020F0">while</FONT></B> (&lt;F&gt;)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">unless</FONT></B> <B><FONT COLOR="#A020F0">m</FONT></B>/^(\S+) on (\S+)/o;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">if</FONT></B> (<B><FONT COLOR="#A020F0">defined</FONT></B> ($mounts{$1}) &amp;&amp; $1 <B><FONT COLOR="#A020F0">ne</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;tmpfs&quot;</FONT></B> )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">push</FONT></B> @errors, <B><FONT COLOR="#BC8F8F">&quot;$1 is mounted several times !?&quot;</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">else</FONT></B>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mounts{$1} = $2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
}

<B><FONT COLOR="#A020F0">close</FONT></B> F;

<I><FONT COLOR="#B22222"># Lecture du fichier fstab
</FONT></I>
<B><FONT COLOR="#A020F0">open</FONT></B> F, <B><FONT COLOR="#BC8F8F">'/etc/fstab'</FONT></B>;

<B><FONT COLOR="#A020F0">while</FONT></B> (&lt;F&gt;)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> <B><FONT COLOR="#A020F0">m</FONT></B>/^\<B><FONT COLOR="#A020F0">s</FONT></B>*$/o;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> <B><FONT COLOR="#A020F0">m</FONT></B>/^\<B><FONT COLOR="#A020F0">s</FONT></B>*<I><FONT COLOR="#B22222">#/o;
</FONT></I>	<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">unless</FONT></B> <B><FONT COLOR="#A020F0">m</FONT></B>/^(\S+)\<B><FONT COLOR="#A020F0">s</FONT></B>+(\S+)\<B><FONT COLOR="#A020F0">s</FONT></B>+(\S+)\<B><FONT COLOR="#A020F0">s</FONT></B>+(\S+)/o;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">my</FONT></B> ($dev, $mpt, $type, $opt) = ($1, $2, $3, $4);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> $type <B><FONT COLOR="#A020F0">eq</FONT></B> <B><FONT COLOR="#BC8F8F">'swap'</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> $type <B><FONT COLOR="#A020F0">eq</FONT></B> <B><FONT COLOR="#BC8F8F">'procfs'</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> $opt =~ <B><FONT COLOR="#A020F0">m</FONT></B>/noauto/;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT COLOR="#B22222"># print &quot;DEV =&gt; $mounts{$dev} - $dev\n&quot;;	
</FONT></I>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">if</FONT></B> (<B><FONT COLOR="#A020F0">defined</FONT></B>($mounts{$dev}))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT COLOR="#B22222"># Le device est bien monté.
</FONT></I>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">if</FONT></B> ($mounts{$dev} <B><FONT COLOR="#A020F0">eq</FONT></B> $mpt)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT COLOR="#B22222"># Le device est bien monté sur le bon mount point.
</FONT></I>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT COLOR="#B22222"># TODO Vérifier qu'il ne s'agit pas d'un Stale NFS Handle !
</FONT></I>			
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nfs = <B><FONT COLOR="#A020F0">sprintf</FONT></B>(<B><FONT COLOR="#BC8F8F">&quot;%s/.&quot;</FONT></B>, $mounts{$dev} );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">eval</FONT></B> {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$SIG{<B><FONT COLOR="#BC8F8F">'ALRM'</FONT></B>} = <B><FONT COLOR="#A020F0">sub</FONT></B> { <B><FONT COLOR="#A020F0">die</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;time_out&quot;</FONT></B> }; <I><FONT COLOR="#B22222"># NB: \n required
</FONT></I>					<B><FONT COLOR="#A020F0">alarm</FONT></B> TIME_OUT;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">if</FONT></B>( ! -d $nfs ) { <B><FONT COLOR="#A020F0">print</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;no directory $nfs\n&quot;</FONT></B>; } 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT COLOR="#B22222">#@stats = stat($nfs);
</FONT></I>					<I><FONT COLOR="#B22222"># print &quot;stat sur $nfs\n&quot;;
</FONT></I>					<I><FONT COLOR="#B22222">#if( ! -d $nfs or $stats[SIZE] == 0 ) { print &quot;ERR mount FS error&quot;;}
</FONT></I>					<B><FONT COLOR="#A020F0">alarm</FONT></B> 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">alarm</FONT></B> 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">if</FONT></B> ( $@ ) { 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">die</FONT></B> <B><FONT COLOR="#A020F0">unless</FONT></B> $@ <B><FONT COLOR="#A020F0">eq</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;time_out&quot;</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT COLOR="#B22222">#die unless $@ eq &quot;ERR timeout&quot;; 
</FONT></I>			}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">else</FONT></B> {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT COLOR="#B22222"># didn't
</FONT></I>						    }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">delete</FONT></B> $mounts{$dev};
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT COLOR="#B22222"># Le device est monté, mais pas sur le bon mount point !
</FONT></I>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">push</FONT></B> @errors, <B><FONT COLOR="#BC8F8F">&quot;$dev is not mounted on $mpt&quot;</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">else</FONT></B>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT COLOR="#B22222"># Le device n'est pas monté alors qu'il devrait l'être !
</FONT></I>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">push</FONT></B> @errors, <B><FONT COLOR="#BC8F8F">&quot;$dev is not mounted&quot;</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
}

<B><FONT COLOR="#A020F0">foreach</FONT></B> <B><FONT COLOR="#A020F0">my</FONT></B> $rem (<B><FONT COLOR="#A020F0">keys</FONT></B> %mounts)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> $rem <B><FONT COLOR="#A020F0">eq</FONT></B> <B><FONT COLOR="#BC8F8F">'devfs'</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> $rem <B><FONT COLOR="#A020F0">eq</FONT></B> <B><FONT COLOR="#BC8F8F">'procfs'</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> $rem <B><FONT COLOR="#A020F0">eq</FONT></B> <B><FONT COLOR="#BC8F8F">'sysfs'</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> $rem <B><FONT COLOR="#A020F0">eq</FONT></B> <B><FONT COLOR="#BC8F8F">'tmpfs'</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> $rem <B><FONT COLOR="#A020F0">eq</FONT></B> <B><FONT COLOR="#BC8F8F">'nfsd'</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> $rem <B><FONT COLOR="#A020F0">eq</FONT></B> <B><FONT COLOR="#BC8F8F">'devpts'</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">next</FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> $rem <B><FONT COLOR="#A020F0">eq</FONT></B> <B><FONT COLOR="#BC8F8F">'usbfs'</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">push</FONT></B> @errors, <B><FONT COLOR="#BC8F8F">&quot;$rem is unexptectedly mounted on $mounts{$rem}&quot;</FONT></B>;
}

<B><FONT COLOR="#A020F0">close</FONT></B> F;

<I><FONT COLOR="#B22222"># On affiche les erreurs, s'il y en a.
</FONT></I>
<B><FONT COLOR="#A020F0">if</FONT></B> (<B><FONT COLOR="#A020F0">scalar</FONT></B>(@errors) == 1)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">printf</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;ERR %s\n&quot;</FONT></B>, $errors[0];
}
<B><FONT COLOR="#A020F0">elsif</FONT></B> (<B><FONT COLOR="#A020F0">scalar</FONT></B>(@errors) &gt; 0)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">printf</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;ERR %d mount errors !\n&quot;</FONT></B> . <B><FONT COLOR="#A020F0">join</FONT></B>(<B><FONT COLOR="#BC8F8F">&quot;\n&quot;</FONT></B>, @errors) . <B><FONT COLOR="#BC8F8F">&quot;\n&quot;</FONT></B>, <B><FONT COLOR="#A020F0">scalar</FONT></B>(@errors);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">exit</FONT></B> STATUS_CRITICAL;
}
<B><FONT COLOR="#A020F0">else</FONT></B>
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT COLOR="#B22222"># print &quot;OK - All mountpoints are UP.\n&quot;;
</FONT></I>	<B><FONT COLOR="#A020F0">print</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;OK - All filesystems are mounted.\n&quot;</FONT></B>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT COLOR="#A020F0">exit</FONT></B> STATUS_OK;
}

<I><FONT COLOR="#B22222"># vim: set ts=3 sw=3:
</FONT></I></PRE>
<HR>
<ADDRESS>Generated by <A HREF="http://www.iki.fi/~mtr/genscript/">GNU enscript 1.6.4</A>.</ADDRESS>
</BODY>
</HTML>
</td></tr></table>
<hr>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td align="left" class="footer">
<a href="/">Home</a> | <a href="/adm/projects/">Projects</a>
</td><td align="right" class="footer">
contact: <a href="mailto:yg@fr.clara.net">yg@fr.clara.net</a>
</td></tr></table>
</body>
</html>
