Hoi allemaal,
Eerst even een uitleg van het hoe en waarom:
In den beginne was er een netwerk met een aantal subnetten waarvan er maar een paar gebruikt werden. Mij werd gevraagd om een script te schrijven om wat checks te doen op dit netwerk. (Netwerk bestaat uit switches). De eerste stap in mijn script was het pingen van de subnetten om te kijken welke switches op dat moment operationeel zijn. Je kan je voorstellen dat als het om een paar /24 subnetten gaat de tijd die het kost om die subnetten te pingen nogal tijdrovend is. Vooral als het grootste deel van de ip-adressen in die subnetten niet gebruikt wordt. In het begin konden we hier nog wel mee uit de voeten. Het script liep 's-nachts en niemand had er last van.
Het aantal switches dat gepinged moet worden evenals de subnetten is groter geworden. De tijd die het zou gaan kosten (met een timeout van 1 s) is veel te groot om het script snachts te laten draaien.
In theorie is het mogelijk om gebruik te maken van fork in mijn perlscripts om een aantal ip-adressen tegelijk te gaan pingen. Dit heeft echter tot gevolg dat de processen nogal toenemen iedere keer als ik bijvoorbeeld 40 adressen ping. (In die fork wordt er gebruik gemaakt van:
Bovenstaande heb ik getest op een Linux machine en werkt dus. Maar door het aantal processen ben ik hiervan afgestapt.
Op mijn zoektocht naar andere mogelijkheden kwam ik bij fping. Nu durf ik met 90% zekerheid te zeggen dat deze niet beschikbaar is op de UNIX server waarop dit scriptje moet gaan draaien. Ik heb tevens geen root rechten. Is het mogelijk om dit script toch te kunnen draaien vanuit mijn eigen space op de unix server? en zo ja.. hoe zou ik dit kunnen doen?
Eerst even een uitleg van het hoe en waarom:
In den beginne was er een netwerk met een aantal subnetten waarvan er maar een paar gebruikt werden. Mij werd gevraagd om een script te schrijven om wat checks te doen op dit netwerk. (Netwerk bestaat uit switches). De eerste stap in mijn script was het pingen van de subnetten om te kijken welke switches op dat moment operationeel zijn. Je kan je voorstellen dat als het om een paar /24 subnetten gaat de tijd die het kost om die subnetten te pingen nogal tijdrovend is. Vooral als het grootste deel van de ip-adressen in die subnetten niet gebruikt wordt. In het begin konden we hier nog wel mee uit de voeten. Het script liep 's-nachts en niemand had er last van.
Het aantal switches dat gepinged moet worden evenals de subnetten is groter geworden. De tijd die het zou gaan kosten (met een timeout van 1 s) is veel te groot om het script snachts te laten draaien.
In theorie is het mogelijk om gebruik te maken van fork in mijn perlscripts om een aantal ip-adressen tegelijk te gaan pingen. Dit heeft echter tot gevolg dat de processen nogal toenemen iedere keer als ik bijvoorbeeld 40 adressen ping. (In die fork wordt er gebruik gemaakt van:
Perl:
1
| system("ping -c 1 192.168.1.$entry >> pingfile"); |
Bovenstaande heb ik getest op een Linux machine en werkt dus. Maar door het aantal processen ben ik hiervan afgestapt.
Op mijn zoektocht naar andere mogelijkheden kwam ik bij fping. Nu durf ik met 90% zekerheid te zeggen dat deze niet beschikbaar is op de UNIX server waarop dit scriptje moet gaan draaien. Ik heb tevens geen root rechten. Is het mogelijk om dit script toch te kunnen draaien vanuit mijn eigen space op de unix server? en zo ja.. hoe zou ik dit kunnen doen?