Ontwikkelaar van de Drammer whisky app voor Android en iOS / arduino-lessen.nl / blender-lessen.nl
Lijkt wel heel veel op een script request..... Wat heb je zelf al geprobeerd?
Wat ik zo snel kan bedenken: (werkt overigens gewoon met Bash)
* Neem een host waarvan je zeker weet dat hij atlijd te pingen is
* Laat door middel van cron elke minuut het commande ping -c 1 host
Als de returncode van ping 0 is dan is alles goed gegaan en is internet up, als de return code ongelijk aan 0 is dan is de server niet te bereiken. Overigens kun je met bash de return code opvragen door middel van de shell variabele $?
Nu heb je nog een aantal kleine bestanden nodig:
* Bestand om bij te houden wat de status van de vorige ping was (0 of 1)
* Bestand om bij te houden wat de timestamp was van de vorige ping indien die niet lukte
* Bestand om alle offline tijden bij te houden
Is op zich niet zo heel moeilijk in elkaar te draaien. Overigens zullen er nog zat meer mogelijke oplossingen zijn dan bovenstaande.
Wat ik zo snel kan bedenken: (werkt overigens gewoon met Bash)
* Neem een host waarvan je zeker weet dat hij atlijd te pingen is
* Laat door middel van cron elke minuut het commande ping -c 1 host
Als de returncode van ping 0 is dan is alles goed gegaan en is internet up, als de return code ongelijk aan 0 is dan is de server niet te bereiken. Overigens kun je met bash de return code opvragen door middel van de shell variabele $?
Nu heb je nog een aantal kleine bestanden nodig:
* Bestand om bij te houden wat de status van de vorige ping was (0 of 1)
* Bestand om bij te houden wat de timestamp was van de vorige ping indien die niet lukte
* Bestand om alle offline tijden bij te houden
Is op zich niet zo heel moeilijk in elkaar te draaien. Overigens zullen er nog zat meer mogelijke oplossingen zijn dan bovenstaande.
Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker
thnx, nu heb ik iets om mee te beginnen...Ik had op internet rondgezocht naar mogelijke oplossingen maar kon weinig vinden.
Ik ben bezig geweest met bash: pingen en dan met grep de time eruit halen...nog niet echt wat geworden...
Ik ben bezig geweest met bash: pingen en dan met grep de time eruit halen...nog niet echt wat geworden...
Ontwikkelaar van de Drammer whisky app voor Android en iOS / arduino-lessen.nl / blender-lessen.nl
Je hoeft de time er helemaal niet uit te halen....
Doe maar eens gewoon vanaf de prompt:
ping -c 1 <host> (en deze host moet gewoon te pingen zijn....)
echo $?
en
ping -c 1 <host> (en deze host moet niet bestaan.....)
echo $?
Je zult zien dat bij de eerste de shell variabele $? de waarde 0 heeft en bij de tweede de waarde 1. De waarde 0 geeft aan dat er geen probleme zijn geweest en een waarde ongelijk aan 0 geeft aan dat er iets fout is gegaan bij het pingen. Je hoeft dus helemaal geen tijden eruit te greppen, je wilt namelijk alleen maar weten of de host wel of niet te pingen is.
Doe maar eens gewoon vanaf de prompt:
ping -c 1 <host> (en deze host moet gewoon te pingen zijn....)
echo $?
en
ping -c 1 <host> (en deze host moet niet bestaan.....)
echo $?
Je zult zien dat bij de eerste de shell variabele $? de waarde 0 heeft en bij de tweede de waarde 1. De waarde 0 geeft aan dat er geen probleme zijn geweest en een waarde ongelijk aan 0 geeft aan dat er iets fout is gegaan bij het pingen. Je hoeft dus helemaal geen tijden eruit te greppen, je wilt namelijk alleen maar weten of de host wel of niet te pingen is.
Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker
omdat vandaag toch een beetje een feestdag is :
mysql tabel:
scriptje wat kant&klare sql bouwt:
vervolens:
getpingtime | /usr/bin/mysql -u pUser -pWachtwoord
in je cron om de x minuten, en over een maand heb je prachtige stats die vervolgens genegeerd kunnen worden door je provider
mysql tabel:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| # # Table structure for table `dimplelogs` # CREATE TABLE dimplelogs ( date date default NULL, time time default NULL, sent tinyint(4) default NULL, received tinyint(4) default NULL, lost tinyint(4) default NULL, times varchar(20) default NULL ) TYPE=MyISAM; |
scriptje wat kant&klare sql bouwt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #!/bin/sh
# getpingtime
# Dit script voert een ping uit, en verwerkt die uitkomst vervolgens met
# een awk scriptje. Dit zorgt ervoor dat alleen de nodige getallen naar
# stdout worden geschreven. Hierdoor kan het makkelijker naar de database
# worden geschreven. Er wordt ook een tijd meegegeven.
#ping -c 2 -s 1472 -q 195.121.0.226 | awk '
ping -c 2 -q 195.121.1.66 | awk '
BEGIN {
now=strftime("(\047%Y-%m-%d\047,\047%T\047,");
print "use inetlogs;"
print "insert into dimplelogs values"
printf "%s", now
}
NR == 4 { printf "\047%s\047,\047%s\047,\047%s\047,", $1, $4, $7 }
NR == 5 { printf " \047%s\047);\n", $4 }
END {
if (NR == 4) { printf " \047Netwerk_Plat\047);\n" }
}' |
vervolens:
getpingtime | /usr/bin/mysql -u pUser -pWachtwoord
in je cron om de x minuten, en over een maand heb je prachtige stats die vervolgens genegeerd kunnen worden door je provider
Whenever you find that you are on the side of the majority, it is time to reform.
Hmmm... Zoals ik al zei, het kan op meerdere manieren. Bovenstaande manier valt onder de wat meer verfijnde oplossingen 
Verder wist ik niet dat je zoveel kan doen met awk, nooit zo in verdiept, misschien toch maar eens doen
Verder wist ik niet dat je zoveel kan doen met awk, nooit zo in verdiept, misschien toch maar eens doen
Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker
Pagina: 1
Dit topic is gesloten.
![]()