PDA

View Full Version : uptime da remoto


gottardi_davide
30-01-2006, 00:59
Buona sera a tutti.
Riesco a far eseguire il comando uptime da remoto, ma ricevo in risposta un array con diversi dati.
Io vorrei estrarre solo il numero di giorni, come posso fare?
Qual'è la struttura di quell'array?
Grazie.

mjordan
30-01-2006, 04:25
Buona sera a tutti.
Riesco a far eseguire il comando uptime da remoto, ma ricevo in risposta un array con diversi dati.
Io vorrei estrarre solo il numero di giorni, come posso fare?
Qual'è la struttura di quell'array?
Grazie.

Dovresti postare il codice, non è che esiste un solo metodo per fare questa roba.

gottardi_davide
30-01-2006, 23:59
Dovresti postare il codice, non è che esiste un solo metodo per fare questa roba.
il codice mi serve.. altrimenti non chiederei.
La perte che ho già non basta, non rende, ma domani la posto.
in PHP comunque.

mjordan
31-01-2006, 03:11
il codice mi serve.. altrimenti non chiederei.
La perte che ho già non basta, non rende, ma domani la posto.
in PHP comunque.

Ah ecco. E io che stavo pensando a un modello client/server in C :asd: Quanto fa la differenza il linguaggio... Puoi realizzare il tutto con la funzione explode().
La funzione explode() prende in ingresso due argomenti. Una stringa da separare e una da separare. Restituisce un'array dove ogni elemento è una sottostringa della stringa da separare.

Ti faccio un esempio:


$explode_result = explode("AND", "uno AND due AND tre");


Il risultato, explode_result, sarà un array di tre elementi, ognuno dei quali è una stringa. E cioè "uno" , "due", "tre".
Ora, considerando che il comando uptime restituisce una stringa del genere:


03:05:34 up 2:42, 4 users, load average: 0.13, 0.34, 0.36


a te di quella stringa serve solo la parte dopo la parola "up".
Quindi possiamo impostare il problema con il seguente programma:


<?php
#####################
# uptime by mjordan #
####################
$data = shell_exec('uptime');
$uptime = explode(' up ', $data);
$uptime = explode(',', $uptime[1]);
$uptime = $uptime[0].', '.$uptime[1];

echo ('Attuale uptime del server: '.$uptime.'');
?>


Spero di essere stato chiaro. Magari con un po di fortuna puoi integrarlo cosi com'è.