Script voor het wegschrijven van pingresultaten

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • BDHowner
  • Registratie: Juli 2011
  • Laatst online: 06-05 08:52
Ik zou graag een batch-bestandje willen maken om pingresultaten op te slaan. Na een paar uur proberen krijg ik het niet lekker voor elkaar om zoiets goed werkend te krijgen.

Mijn wensen:
- Start op met een systeemstart (dus snelkoppeling in de map "Opstarten", dat is niet zo moeilijk).
- Pingt een IP-adres elke 3 seconde.
- Schrijft de resultaten in een .txt in een map die de datum als naam krijgt (dus bijv. 06-03-2012), en als bestandsnaam de tijd in min. (dus bijv. 11:35, maar die zou illegaal zijn, dus een streepje is ook goed, 11-35 dus).

Ik heb wel iets werkend, maar graag zou ik zien hoe jullie dit scriptje zouden opbouwen.

Het gaat om Windows Server 2008 R2, ik vond op internet voorbeelden die niet leken te werken onder deze Windows versie.

Thx!

Acties:
  • 0 Henk 'm!

  • DeTeraarist
  • Registratie: November 2000
  • Laatst online: 20-07 02:46

DeTeraarist

#Boots2Asses

Wacht, je wil onze voorbeelden, maar je deelt je eigen code niet?

Wat dacht je van
code:
1
Ping IPAdres > bestand.txt

[ Voor 80% gewijzigd door DeTeraarist op 06-03-2012 11:44 ]

Soms, als ik heel stil ben, kan ik de zon horen schijnen


Acties:
  • 0 Henk 'm!

  • mhoogendam
  • Registratie: Oktober 2002
  • Laatst online: 19-07 18:21
Laat eens zien wat je hebt en wat er dan niet lekker gaat.

Acties:
  • 0 Henk 'm!

  • LnC
  • Registratie: Juni 2005
  • Laatst online: 24-03 20:32

LnC

The offending line...

Dit is wat ik heb gevonden voor je:

Open CMD en gebruik het volgende command (gebruik hier andere ip's en output naam voor je .txt bestand)

code:
1
ping 192.168.1.1 -t > filename.txt


Bron

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

> gaat natuurlijk niet werken in een loopje, dan overschrijf je. Je kunt daarnaast %date% en %time% gebruiken i.c.m. aanduiding welke delen je wilt gebruiken (dus %time:~0,2%%time:~3,2% etc).

Eigenlijk vind ik trouwens batch achterhaald op een 2k8R2-server. Het enige voordeel zou zijn dat je het vloeiend 'spreekt' maar dat is hier misschien niet het geval. Waarom daar nog mee?


Maar begin inderdaad eens aan te geven wat je huidige code is en waar je vastloopt.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • battler
  • Registratie: November 2004
  • Laatst online: 30-06 15:11
Ik weet niet wat het probleem is dat je wilt oplossen maar is smokeping geen oplossing?

Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl


Acties:
  • 0 Henk 'm!

  • DeTeraarist
  • Registratie: November 2000
  • Laatst online: 20-07 02:46

DeTeraarist

#Boots2Asses

F_J_K schreef op dinsdag 06 maart 2012 @ 13:01:
> gaat natuurlijk niet werken in een loopje, dan overschrijf je. Je kunt daarnaast %date% en %time% gebruiken i.c.m. aanduiding welke delen je wilt gebruiken (dus %time:~0,2%%time:~3,2% etc).

Eigenlijk vind ik trouwens batch achterhaald op een 2k8R2-server. Het enige voordeel zou zijn dat je het vloeiend 'spreekt' maar dat is hier misschien niet het geval. Waarom daar nog mee?


Maar begin inderdaad eens aan te geven wat je huidige code is en waar je vastloopt.
Batch bestandje maken met een loop, dan het batch bestandje aanroepen en pipen \o/

Soms, als ik heel stil ben, kan ik de zon horen schijnen


Acties:
  • 0 Henk 'm!

  • BDHowner
  • Registratie: Juli 2011
  • Laatst online: 06-05 08:52
DeTeraarist schreef op dinsdag 06 maart 2012 @ 11:43:
Wacht, je wil onze voorbeelden, maar je deelt je eigen code niet?

Wat dacht je van
code:
1
Ping IPAdres > bestand.txt
Dat had ik i.d.d. al gevonden, en met een enkele command ging dat allemaal ook prima, maar het geautomatiseerd maken lukt me nog niet echt.

Wat betreft het niet delen van mijn eigen code is omdat ik graag wil zien wat iemand anders "from the scratch" zou doen.

Maar bij deze mijn code (tot nu toe i.i.g.):

code:
1
2
3
4
5
:loop
echo Pingresultaat van %date% %time%>>"E:\Systeembeheer\Monitoring UPC\Pingresultaten.txt"
ping 208.67.220.220 -n 60 >>"E:\Systeembeheer\Monitoring UPC\Pingresultaten.txt"
echo =========================================================================>>"E:\Systeembeheer\Monitoring UPC\Pingresultaten.txt"
goto loop


Dit is al vrij aardig naar mijn zin, alleen zit ik nog met enkele problemen:

- Dit moet je in een CMD "slepen", dubbelklikken werkt niet.
- Ik hoef geen miliseconden in de output.
- De mapnaam en bestandsnaam van het tekstbestandje wil me nog niet lukken.

Verder ben ik niet echt goed met batch ofzo, maar ik wil gewoon iets dat werkt. Als jullie een beter alternatief hebben dan is dat ook prima (PowerShell bijv.).

Dit is meer een desktop met Windows Server (ik vind de prestaties beter), en wil een beetje serverfuncties uit gaan proberen. Het is niet zo dat ik helemaal thuis ben in Server 2008 o.i.d., dat komt wel met de tijd ;). DreamSpark-studenten kunnen Server 2008 gratis krijgen, vandaar ;).

Edit:
Het maken en gebruiken van een mapnaam met de datum van vandaag is nu ook gelukt :). Nu alleen de tijd nog.

[ Voor 5% gewijzigd door BDHowner op 06-03-2012 13:59 ]


Acties:
  • 0 Henk 'm!

  • TheVMaster
  • Registratie: Juli 2001
  • Laatst online: 00:22

TheVMaster

Moderator WOS
Eh....om eerlijk te zijn zou ik (ik ben het wel eens met F_J_K) dit zeer zeker niet in een batch file gieten, maar gelijk in PowerShell doen....

Overigens is dit zeer eenvoudig via Google te vinden....met 1 zoekopdracht kom ik hier al op uit..volgens mij moet je hier een eind mee komen....

Acties:
  • 0 Henk 'm!

  • BDHowner
  • Registratie: Juli 2011
  • Laatst online: 06-05 08:52
TheVMaster schreef op dinsdag 06 maart 2012 @ 14:36:
Eh....om eerlijk te zijn zou ik (ik ben het wel eens met F_J_K) dit zeer zeker niet in een batch file gieten, maar gelijk in PowerShell doen....

Overigens is dit zeer eenvoudig via Google te vinden....met 1 zoekopdracht kom ik hier al op uit..volgens mij moet je hier een eind mee komen....
Mag ik vragen waarom jullie batch afraden?

Acties:
  • 0 Henk 'm!

  • TheVMaster
  • Registratie: Juli 2001
  • Laatst online: 00:22

TheVMaster

Moderator WOS
BDHowner schreef op dinsdag 06 maart 2012 @ 14:40:
[...]

Mag ik vragen waarom jullie batch afraden?
Omdat dat oud en achterhaald is en PowerShell vele malen krachtiger is en flexibeler....en het is de toekomst...dus nu investeren in PowerShell kennis en je plukt daar de vruchten van in de toekomst…

* TheVMaster was ook een groot fan van cmd en VBScript....maar is sinds maand of wat compleet over naar PowerShell

Met de komst van PowerShell v2 kun je eenvoudig pingen d.mv. de cmdlet Test-Connection

Misschien overbodig, maar eh...zou je de volgende keer ook in je TS ff kunnen vermelden wat je allemaal zelf al gevonden had...? O-)

[ Voor 34% gewijzigd door TheVMaster op 06-03-2012 14:56 ]


Acties:
  • 0 Henk 'm!

  • BDHowner
  • Registratie: Juli 2011
  • Laatst online: 06-05 08:52
TheVMaster schreef op dinsdag 06 maart 2012 @ 14:41:
[...]


Omdat dat oud en achterhaald is en PowerShell vele malen krachtiger is en flexibeler....en het is de toekomst...dus nu investeren in PowerShell kennis en je plukt daar de vruchten van in de toekomst…

* TheVMaster was ook een groot fan van cmd en VBScript....maar is sinds maand of wat compleet over naar PowerShell

Met de komst van PowerShell v2 kun je eenvoudig pingen d.mv. de cmdlet Test-Connection

Misschien overbodig, maar eh...zou je de volgende keer ook in je TS ff kunnen vermelden wat je allemaal zelf al gevonden had...? O-)
Ik wilde het graag in batch werkend krijgen deze keer :). Voelde vertrouwd, in de toekomst zal ik zeker wel in PowerShell verder gaan neuzen.

Anyways ik heb een werkend script gefabriceerd:

code:
1
2
3
4
5
6
7
8
9
:loop
set datum=%date:~-10,2%-%date:~-7,2%-%date:~-4,4%
set uur=%time:~0,2%
set minuut=%time:~3,2%
md "E:\Systeembeheer\Monitoring UPC\%datum%"
echo Pingresultaat van %datum% %uur%:%minuut%>>"E:\Systeembeheer\Monitoring UPC\%datum%\%uur%_%minuut%.txt"
ping 208.67.220.220 -n 60 >>"E:\Systeembeheer\Monitoring UPC\%datum%\%uur%_%minuut%.txt"
echo =========================================================================>>"E:\Systeembeheer\Monitoring UPC\%datum%\%uur%_%minuut%.txt"
goto loop

Wat vind je ervan? Zie je eventueel iets doms o.i.d.? Zelf had ik eerst de datumberekening 4x in dit script staan, en nu vervangen door set om de boel opgeruimd te houden.

Het enige puntje is nog dat deze batch niet te dubbelklikken is, iemand die daar iets vanaf weet?

Thx so far.

Met de huidige opzet zou de lijn zelfs weg kunnen (in eerste instantie ging ik voor 1 groter bestand, maar vind dit overzichtelijker).

Edit:
Mappad moet ook een set worden denk ik.

[ Voor 4% gewijzigd door BDHowner op 06-03-2012 15:16 ]


Acties:
  • 0 Henk 'm!

  • King Dingeling
  • Registratie: Maart 2000
  • Laatst online: 08-07 09:28
Je wilt maar een server controleren op een ping?
Ik d8 ook ff met een cmd aan de slag te gaan totdat TheVMaster met Powershell aan de proppen kwam
Leuk script en handig btw en het werkt velen male sneller en is ook krachtiger!!!

Dit is mijn resultaat tot dusver:

$servers = "C:\Temp\servers.csv"
$csv = Import-CSV $servers
$output = "C:\Temp\Resultaat.txt"
$smtpServer = ""

foreach($item in $csv){
$server = $item.ServerName
$ip = $item.IpAddress

$ping = new-object System.Net.NetworkInformation.Ping
$rslt = $ping.send($ip)
if ($rslt.status.tostring() –eq "Success"){
Write-Host We hebben een ping op $server met een IP $ip -ForegroundColor Green
Write-Output "We hebben een ping op $server met een IP $ip" | Out-File $output -append}
else {
write-host We hebben GEEN ping op $server met een IP $ip -ForegroundColor Red
Write-Output "We GEEN ping op $server met een IP $ip" | Out-File $output -append

}
}
$ping = $null


------------
Het csv bestand komt er dan zo uit te zien:

ServerName,IpAddress
Servernaam1,10.0.0.10
Servernaam2,10.0.0.20

[ Voor 96% gewijzigd door King Dingeling op 06-03-2012 15:56 ]

PSN id: K1ngD1ng3l1ng | BF3 PC: KingDing3ling


Acties:
  • 0 Henk 'm!

  • BDHowner
  • Registratie: Juli 2011
  • Laatst online: 06-05 08:52
Nou ik heb nog ff me best gedaan, en het script fors verbeterd:

code:
1
2
3
4
5
6
7
8
:loop
set mappad=E:\Systeembeheer\Monitoring UPC
set datum=%date:~-10,2%-%date:~-7,2%-%date:~-4,4%
md "%mappad%\%datum%"
set uur=%time:~0,2%
set minuut=%time:~3,2%
ping 208.67.220.220 -n 60 >>"%mappad%\%datum%\%uur%_%minuut%.log"
goto loop


Stukken compacter naar mijn idee, en hij voldoet nu zo goed als aan mijn eisen. Alleen nog steeds het dubbelklikken, echt niemand die dat weet?

Acties:
  • 0 Henk 'm!

  • TheVMaster
  • Registratie: Juli 2001
  • Laatst online: 00:22

TheVMaster

Moderator WOS
King Dingeling schreef op dinsdag 06 maart 2012 @ 15:48:
Je wilt maar een server controleren op een ping?
Ik d8 ook ff met een cmd aan de slag te gaan totdat TheVMaster met Powershell aan de proppen kwam
Leuk script en handig btw en het werkt velen male sneller en is ook krachtiger!!!

Dit is mijn resultaat tot dusver:

[...PowerShell Script van ICT-Freak...]
Eh....dat heb je ook niet zelf verzonnen he :+
BDHowner schreef op dinsdag 06 maart 2012 @ 16:36:
Nou ik heb nog ff me best gedaan, en het script fors verbeterd:

code:
1
2
3
4
5
6
7
8
:loop
set mappad=E:\Systeembeheer\Monitoring UPC
set datum=%date:~-10,2%-%date:~-7,2%-%date:~-4,4%
md "%mappad%\%datum%"
set uur=%time:~0,2%
set minuut=%time:~3,2%
ping 208.67.220.220 -n 60 >>"%mappad%\%datum%\%uur%_%minuut%.log"
goto loop


Stukken compacter naar mijn idee, en hij voldoet nu zo goed als aan mijn eisen. Alleen nog steeds het dubbelklikken, echt niemand die dat weet?
Eh...wat lukt er niet? Ik doe dubbel-klikken op de file..en hij loopt gewoon hoor....

[ Voor 41% gewijzigd door TheVMaster op 06-03-2012 18:47 ]


Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 00:57

The Eagle

I wear my sunglasses at night

Hoezo dubbelklikken? Als je toch oldschool batch gaat, gebruik dan simplweg de windows task scheduler. Trap je een batchbestandje aan vanuit de scheduler op gezette tijden. En als mocht je willen mailen: zoek naar een command line smtp mailtooltje. Zijn er genoeg. Als je met variabelen werkt kun je dat zelfs nog in de email verwerken als je wilt :)

* The Eagle heeft zo al jaren een automatisch refreshscript voor zijn Oracle DB's op windows draaien :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • 0 Henk 'm!

  • mhoogendam
  • Registratie: Oktober 2002
  • Laatst online: 19-07 18:21
BDHowner schreef op dinsdag 06 maart 2012 @ 16:36:
[...]
Stukken compacter naar mijn idee, en hij voldoet nu zo goed als aan mijn eisen. Alleen nog steeds het dubbelklikken, echt niemand die dat weet?
Wat is de naam van je script?

Gokje: Hernoem je script van ping.bat naar ping_ip.bat

Acties:
  • 0 Henk 'm!

  • BDHowner
  • Registratie: Juli 2011
  • Laatst online: 06-05 08:52
mhoogendam schreef op woensdag 07 maart 2012 @ 07:56:
[...]


Wat is de naam van je script?

Gokje: Hernoem je script van ping.bat naar ping_ip.bat
Klopt, ik had i.d.d. ping als naam, las eergisteren op internet dat dat problemen gaf, script werkt nu enkele dagen naar behoren...

Ik kwam nu nog ff kijken of ik het eindresultaat er nog opgezet had, aangezien ik dat wel zo netjes vond :).

Het was i.i.g. wel een leerzame ervaring voor mij, aangezien ik op school weinig van dit soort dingen krijg. Zeker het aanvragen van waarden met %waarde% vond ik goed om te weten, ouderwets of niet xD.

[ Voor 18% gewijzigd door BDHowner op 08-03-2012 15:47 ]

Pagina: 1