[PHP] Server uptime..

Gestart doorOne2xs25 reacties30 weergaven

26 berichten · pagina 1 van 2

One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Hoi,

Ik heb een eigen server draaien thuis en ik zou graag de uptime van de server willen weten.
Graag wil ik dit via PHP bereken en dan op een externe server, ik kan namelijk commando uptime wel uitvoeren op mijn server, alleen dan krijg ik te zien hoelang de server zelf aan staat, niet de uptime dat hij verbonden is met internet of als Apache uitvalt, dat hij de uptime dan opnieuw gaat berekenen..

Het liefst zoiets als op de noc pagina van One2xs, dat ik percentage uptime kan zien en aantal minuten downtime van afgelopen maand (4 weken) en afgelopen halfjaar..

Iemand die mij kan uitleggen hoe ik dit het beste kan aanpakken?

Groet,
Jesse
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Elke minuut een ping of request naar je server doen en kijken of je reactie krijgt, dat opslaan en verwerken?
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Gewoon in een database o.i.d.?
En dan record updaten of een nieuw record toevoegen?
En dan heb ik zegmaar elke minuut een record in mijn database staan, en dan missen er ergens opeens 5 records, hoe bereken je dat dan?

Of elke minuut een nieuw record in je database en dan kijken of hij online is?
Ow wacht ik snap hem denk ik al emo..

Elke minuut een insert, en dan meegeven in een veld of de server online is of niet..
En dan de records ophalen met interval 1 month of 6 month en dan het totaal aantal records tellen, en dan kijken welke ervan online zijn, en dan online / totaal en dat is dan het percentage dat het online is?

En als veld online 0 is (dus offline) dat optellen en dat is dan het aantal minuten downtime? biggrin.
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Als je 1 server hebt zou je de gratis versie van Pingdom kunnen gebruiken. Ik werk er zelf niet mee maar het lijkt me best goed werken
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Xjessex schreef:
Gewoon in een database o.i.d.?
En dan record updaten of een nieuw record toevoegen?
En dan heb ik zegmaar elke minuut een record in mijn database staan, en dan missen er ergens opeens 5 records, hoe bereken je dat dan?

Of elke minuut een nieuw record in je database en dan kijken of hij online is?
Ow wacht ik snap hem denk ik al emo..

Elke minuut een insert, en dan meegeven in een veld of de server online is of niet..
En dan de records ophalen met interval 1 month of 6 month en dan het totaal aantal records tellen, en dan kijken welke ervan online zijn, en dan online / totaal en dat is dan het percentage dat het online is?

En als veld online 0 is (dus offline) dat optellen en dat is dan het aantal minuten downtime? biggrin.
Ja zoiets, en wat je ook kunt doen is gewoon 1 rij maken met een kolom up en een kolom down en als je server bereikbaar is dan doe je up = up + 1 en anders down = down + 1. Je hebt dan metingen van (up + down) seconden, en je uptime is dan (up / (up + down)) %.
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Nog een vraagje tussendoor:
Minute Hour Day of
Month Month Day of
Week Command Select
* * * * * /usr/local/bin/php -q -f /home/basmidn80/domains/domein.nl/public_html/map/mapmapmap/bestand.php

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/include"]include[/URL] [COLOR= #DD0000]../class.db.php[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]//database connect hier[/COLOR]

[URL="http://www.php.net/if"]if[/URL][COLOR= #007700](!@[/COLOR][URL="http://www.php.net/fsockopen"]fsockopen[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]MIJNIP[/COLOR][COLOR= #007700],[/COLOR] POORT[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$errno[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$errstr[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700]))
{[/COLOR]
    [COLOR= #0000BB]$online[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
    [COLOR= #0000BB]$online[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];
}[/COLOR]
DB[COLOR= #007700]::[/COLOR]Query[COLOR= #007700]([/COLOR][COLOR= #DD0000]"INSERT INTO tabel (date, online) VALUES (NOW(), "[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$online[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]")"[/COLOR][COLOR= #007700]);[/COLOR]
?>


Als ik hem handmatig uitvoer werkt hij perfect, maar als ik hem via een cronjob laat doen, doet hij niks?

toevoeging op 29 mei 2012, 10:22:19:
Lennard schreef:
Eerdere citaten tonen
Xjessex schreef:
Gewoon in een database o.i.d.?
En dan record updaten of een nieuw record toevoegen?
En dan heb ik zegmaar elke minuut een record in mijn database staan, en dan missen er ergens opeens 5 records, hoe bereken je dat dan?

Of elke minuut een nieuw record in je database en dan kijken of hij online is?
Ow wacht ik snap hem denk ik al emo..

Elke minuut een insert, en dan meegeven in een veld of de server online is of niet..
En dan de records ophalen met interval 1 month of 6 month en dan het totaal aantal records tellen, en dan kijken welke ervan online zijn, en dan online / totaal en dat is dan het percentage dat het online is?

En als veld online 0 is (dus offline) dat optellen en dat is dan het aantal minuten downtime? biggrin.
Ja zoiets, en wat je ook kunt doen is gewoon 1 rij maken met een kolom up en een kolom down en als je server bereikbaar is dan doe je up = up + 1 en anders down = down + 1. Je hebt dan metingen van (up + down) seconden, en je uptime is dan (up / (up + down)) %.
Welke manier is dan handiger? Ik denk jouw manier? Aangezien er daarbij veel minder records in de database komen redface
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Xjessex schreef:
Nog een vraagje tussendoor:
Minute Hour Day of
Month Month Day of
Week Command Select
* * * * * /usr/local/bin/php -q -f /home/basmidn80/domains/domein.nl/public_html/map/mapmapmap/bestand.php
[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/include"]include[/URL] [COLOR= #DD0000]../class.db.php[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]//database connect hier[/COLOR]

[URL="http://www.php.net/if"]if[/URL][COLOR= #007700](!@[/COLOR][URL="http://www.php.net/fsockopen"]fsockopen[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]MIJNIP[/COLOR][COLOR= #007700],[/COLOR] POORT[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$errno[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$errstr[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700]))
{[/COLOR]
    [COLOR= #0000BB]$online[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
    [COLOR= #0000BB]$online[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];
}[/COLOR]
DB[COLOR= #007700]::[/COLOR]Query[COLOR= #007700]([/COLOR][COLOR= #DD0000]"INSERT INTO tabel (date, online) VALUES (NOW(), "[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$online[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]")"[/COLOR][COLOR= #007700]);[/COLOR]
?>


Als ik hem handmatig uitvoer werkt hij perfect, maar als ik hem via een cronjob laat doen, doet hij niks?

Volledig pad gebruiken in je include. Cronjobs draaien nooit vanuit je /home directory.
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Aarclay schreef:
Eerdere citaten tonen
Xjessex schreef:
Nog een vraagje tussendoor:
Minute Hour Day of
Month Month Day of
Week Command Select
* * * * * /usr/local/bin/php -q -f /home/basmidn80/domains/domein.nl/public_html/map/mapmapmap/bestand.php

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/include"]include[/URL] [COLOR= #DD0000]../class.db.php[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]//database connect hier[/COLOR]

[URL="http://www.php.net/if"]if[/URL][COLOR= #007700](!@[/COLOR][URL="http://www.php.net/fsockopen"]fsockopen[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]MIJNIP[/COLOR][COLOR= #007700],[/COLOR] POORT[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$errno[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$errstr[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700]))
{[/COLOR]
    [COLOR= #0000BB]$online[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
    [COLOR= #0000BB]$online[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];
}[/COLOR]
DB[COLOR= #007700]::[/COLOR]Query[COLOR= #007700]([/COLOR][COLOR= #DD0000]"INSERT INTO tabel (date, online) VALUES (NOW(), "[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$online[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]")"[/COLOR][COLOR= #007700]);[/COLOR]
?>


Als ik hem handmatig uitvoer werkt hij perfect, maar als ik hem via een cronjob laat doen, doet hij niks?
Volledig pad gebruiken in je include. Cronjobs draaien nooit vanuit je /home directory.

http://www.cronjob.nl/cronjob-directadmin.html

Zeer belangrijk is om bij command het volgende in te vullen:
/usr/local/bin/php -q -f /home/*gebruikersnaam*/domains/*domein.nl*/public_html/cronjob.php *

* Vervang hierbij: *gebruikersnaam* door je directadmin gebruikersnaam en *domein.nl* door je domeinnaam.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Doet ie toch ook emoIk zet in op het volledige pad in de include()

Kijk voor de grap eens met $_SERVER[DOCUMENT_ROOT] welke je door je cron laat echoen, of loggen. wink
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Ow wacht, ik weet het weer.. Cronjobs ondersteunde geen includes? biggrinDus hij include de database class niet, waardoor hij MySQL fout krijgt..
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Xjessex schreef:
Ow wacht, ik weet het weer.. Cronjobs ondersteunde geen includes? biggrin
Bullshit....

Quote:
Dus hij include de database class niet, waardoor hij MySQL fout krijgt..

Lees eens wat ik net zei....
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Hmm okay..
Maar ik heb nu die database class weggelaten en gewoon mysql connect gebruikt, nu zou hij het ook moeten doen.

toevoeging op 29 mei 2012, 10:30:29:
Jeej hij doet het yummie.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Xjessex schreef:
Hmm okay..
Maar ik heb nu die database class weggelaten en gewoon mysql connect gebruikt, nu zou hij het ook moeten doen.
toevoeging op 29 mei 2012, 10:30:29:
Jeej hij doet het yummie.

je kon ook doen wat ik zeg, i.p.v. struisvogelgedrag winkNog een mooie oplossing voor in je cron:

cd /home/basmidn80/domains/domein.nl/public_html/ && /usr/local/bin/php -q -f map/mapmapmap/bestand.php


Als ik het goed heb zou het wel moeten lukken, zonder extra aanpassingen in je script.
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Lennard schreef:
Eerdere citaten tonen
Xjessex schreef:
Gewoon in een database o.i.d.?
En dan record updaten of een nieuw record toevoegen?
En dan heb ik zegmaar elke minuut een record in mijn database staan, en dan missen er ergens opeens 5 records, hoe bereken je dat dan?

Of elke minuut een nieuw record in je database en dan kijken of hij online is?
Ow wacht ik snap hem denk ik al emo..

Elke minuut een insert, en dan meegeven in een veld of de server online is of niet..
En dan de records ophalen met interval 1 month of 6 month en dan het totaal aantal records tellen, en dan kijken welke ervan online zijn, en dan online / totaal en dat is dan het percentage dat het online is?

En als veld online 0 is (dus offline) dat optellen en dat is dan het aantal minuten downtime? biggrin.
Ja zoiets, en wat je ook kunt doen is gewoon 1 rij maken met een kolom up en een kolom down en als je server bereikbaar is dan doe je up = up + 1 en anders down = down + 1. Je hebt dan metingen van (up + down) seconden, en je uptime is dan (up / (up + down)) %.
En hoe zorg ik er dan voor dat ik alleen voor de afgelopen 4 weken wil ophalen?
Of nja, ik haal gewoon alles op yummie.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
INTERVAL 4 WEEKS in SQL?
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren