Language PHP : Hypertext Preprocessor

 Charge moyenne sur 1mn : 1.26 Charge moyenne sur 5mn : 0.65 Charge moyenne sur 15mn : 0.50


PHP

PHP is a popular general-purpose scripting language that is particularly suited for web development.

Fast, flexible and pragmatic, PHP is made for any blog or for all the most popular sites in the world.

The word PHP or programming language contained in web pages and executed on servers, they return the result directly to the client who can never see the source. Allows you to create dynamic web pages.

PHP.Net © 2001-2020 The PHP Group: Language Reference

Predefined PHP classes to make our life easier :)






Site user blocks : Account info / user rights / summary

Afficher l'uptime d'une machine Linux

  • Afficher l'uptime d'une machine Linux
Exemple pour afficher le retour de la commande "uptime" Linux sur une page web.

Informations :

Dates
  • Publish : : Monday 19 february 2024

  • 292 views

Share :

Bonjour,

Je vous "post" une fonction que j'ai écrite, qui ne sert à rien.

Enfin, une fonction pour récupérer l'UPtime des machine pour l'afficher sur un site web qui ressemblera à cela :

Uptime Screenshot

Je créais un fichier avec le résultat de la commande "uptime" que je vais générer toutes les minutes :

Script avec 3 lignes

001$ uptime > /tmp/uptime.log
002$ cat /tmp/uptime.log
00315:11:01 up 182 days,  2:47,  2 users,  load average: 2,50, 1,55, 1,36

Puis en PHP je souhaite l'afficher ici :

Script avec 71 lignes

001<?php
002#---------------
003class tools () {
004
005
006    public function uptime_callback($value) {
007
008	$value[10] = isset($value[10]) && !empty($value[10] && preg_match('/:/', $value[10], $matches)) ? str_replace(':', 'h ', $value[10]).' min' : $value[10];
009	$value[14] = isset($value[14]) && !empty($value[14]) ? str_replace(':', 'h ', $value[14]).' min' : null;
010
011	//$text = $value[2].':'.$value[3].':'.$value[4].' :-: Stats :-: Server up → '.str_replace(':', 'h', $value[10]).' '.$value[12].' '.str_replace(':', 'h', $value[14]).' | '.$value[19].' | '.$value[21].' : '.$value[23].' (1 min) - '.$value[24].' (5 min) - '.$value[25].' (15 min)';
012	$text = $value[2].':'.$value[3].':'.$value[4].' :-: Stats :-: Server up → '.$value[10].' '.$value[12].' '.$value[14].' | '.$value[21].' : '.$value[23].' (1 min) - '.$value[24].' (5 min) - '.$value[25].' (15 min)';
013
014	return $text;
015    }
016    
017    public function uptime() {
018
019	$text = null;
020	
021	$uptime_file = file_get_contents('/tmp/uptime.log');
022
023	$uptime = trim($uptime_file);
024	$uptime___ = explode('average:', $uptime);
025
026	$uptime = $uptime___[0].' average:'.str_replace(array(',', '. '), array('.', ', '), $uptime___[1]);
027
028	$uptime = preg_replace_callback(
029	    '/'.
030	    '(([0-9]{2}):([0-9]{2}):([0-9]{2}))'. // current time : 1-4
031	    '([ ]+)(up)([ ]+)'. // : 5-7
032	    '((([a-zA-Z0-9 :]+)?[,]?)?)?'. // 2 days or hour:min : 8-10
033	    '([ ]+)?'. // : 11
034	    '(([0-9]+)? min)?'. // min only : 12-13
035	    '(([0-9]{1,2})?'. // hours  : 14-15
036	    '(:)?'. // : 16
037	    '([0-9]{2}+))?'. // min of hours : 14-17
038	    ',([ ]+)'. // 18
039	    '([0-9a-zA-Z ]+)'. // users : 19
040	    ',([ ]+)'. // 20
041	    '([a-zA-Z ]+)'. // load : 21
042	    '([:])'. // 22
043	    ''.
044	    ' ([0-9.]+),'. // 23
045	    ' ([0-9.]+),'. // 24
046	    ' ([0-9.]+)'. // 25
047	    '/',
048	    //'zw3bTools::uptime_callback', # vs php-7
049	    [$this→tools(), 'uptime_callback'], # vs php-8
050	    $uptime);
051
052
053	$uptime = date('M j').' '.$uptime;
054
055	$text.= '<div id="uptime">';
056	$text.= $uptime;
057	$text.= '</div>';
058	
059	return $text;
060	
061
062    }    
063    
064
065}
066
067$tools = new zw3btools();
068
069echo $tools→uptime();
070
071?>

Je génére le fichier grâce à une table planifiée toutes les minutes.

Script avec 10 lignes

001$ crontab -l
002# +---------------- minute (0 - 59)
003# |  +------------- hour (0 - 23)
004# |  |  +---------- day of month (1 - 31)
005# |  |  |  +------- month (1 - 12)
006# |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
007# |  |  |  |  |
008# *  *  *  *  *  command to be executed
009
010*/1 * * * * * * uptime > /tmp/uptime.log 1>>/var/log/syslog 2>/dev/null 2>&1

C'est tout.

Bonne journée,

Romain.






Author of the page

O.Romain.Jaillet-ramey

O.Romain.Jaillet-ramey

  • Firstname : Olivier Romain Luc
  • Lastname : : Jaillet-ramey
  • Arrived on tuesday 19 october 1976 (1976/10/19 00:00)
    48 years activity !

Translate this page with Google

Firefox Nighlty

Our friends from Framasoft are interested in Mozilla and asked them questions about Nightly: Firefox Night-club, free entry !






Load page: 3,1017179489136