WinFuture-Forum.de: Anzeige der Linux Bash in PHP? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Anzeige der Linux Bash in PHP?


#1 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.446
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 20. Dezember 2010 - 15:18

Hallo,

ich brauche für ein Projekt die Ausgaben der Linux Konsole, damit der Anwender weiß wie lange er noch warten muss, bis ein bestimmtes Programm gestartet ist.
Man kann ja per "exec" ein Programm ausführen, das klappt auch ganz gut.

Per "shell_exec" kann ich mir auch einiges ausgeben lassen, z.b. ein "Uptime"

<?php
$output = shell_exec('uptime');
echo "<pre>$output</pre>";
?>


Jedoch funktioniert das nicht mit dynamischen Befehlen, also die z.b. die mehrere Ausgaben haben und z.b. Prozente hochrechnen.

Ich brauche also eine "dynamische" Anzeige der Shell, damit auch Befehle wie "top" funktioneren.

Speziell geht es mir um den Vulnerability Scanner openvas, der zum starten ewig braucht, damit der User das sehen kann.

diesen startet man z.b. per "openvassd -p 9030", und kann dann 5-10 Minuten warten.


Kann man evtl. die Shell umleiten, oder alles in eine Datei schreiben und diese dann auslesen?


Gruß

tavoc
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

Anzeige



#2 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 26. Dezember 2010 - 23:02

> filename könnte dir vllt helfen
dies leitet die ausgabe eine programms in eine datei um

bsp: cat info.log > info_2.log

gibt den inhalt der datei aus und leitet die ausgabe in info_2.log um

weiss nich genau ob das is was du brauchst aber vllt hilfts ja :rolleyes:

greetz
0

#3 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.446
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 04. Januar 2011 - 17:35

Hallo skelle,

danke für den Vorschlag. Das werde ich wohl mal demnächst probieren.
Momentan hab ich folgendes Konstrukt, was jedoch nicht für alles funktioniert.

Sowas wie uptime funktioniert natürlich, aber ich bräuchte etwas, das auch z.b. bei "wget" geht.
Das Programm welches ich starten möchte, gibt ähnliche Meldungen aus.



<?php

class Process
{
	public static function open($command)
	{
		$retval = '';
		$error = '';

		$descriptorspec = array(
			0 => array('pipe', 'r'), 
			1 => array('pipe', 'w'),
			2 => array('pipe', 'w')
		);

		$resource = proc_open($command, $descriptorspec, $pipes, null, $_ENV);
		if (is_resource($resource))
		{
			$stdin = $pipes[0]; //Prozess liest oder erwartet Befehl
			$stdout = $pipes[1]; //Prozess ausgabe
			$stderr = $pipes[2]; //Fehlerausgabe

			while (! feof($stdout))
			{
				$retval .= fgets($stdout);
			}

			while (! feof($stderr))
			{
				$error .= fgets($stderr);
			}

			fclose($stdin);
			fclose($stdout);
			fclose($stderr);

			$exit_code = proc_close($resource);
		}

		if (! empty($error))
			throw new Exception($error);
		else
			return $retval;
	}
}

try
{
	$output = Process::open('ls');
	
}
catch (Exception $e)
{
	echo $e->getMessage() . "\n";
	//Fehler
}

?>

your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0