Name : BETA-TESTERS
Project name : ZW3B-API-BETA-TESTERS
Authorized. - 200 - Client API Name and Origin Wildcard OK
Exemple pour afficher le retour de la commande "uptime" Linux sur une page web.
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 :
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 Couche IPv6 only (phase de dev)">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.