[opensuse-es] Abrir una consola para ejecutar un comando usando PHP.
Hola gente cómo les va? Les escribía por la siguiente duda: Necesito hacer si es que se puede una página web en PHP la cual tenga un "botón" que al precionarlo me abra una ventana / pestaña nueva y que me corra el comando iftop con una determinada IP que se le pasa como parámetro. De HTML y PHP ya sé algo y de hecho la página ya está armada y hace otras cosas, lo que quiero hacer ahora es agregarle esa funcionalidad. Para correr por ejemplo el comando "ls" y otra gran variedad utilizo las funciones "exec" (o similares, según el caso) y "foreach" de PHP, para que me muestre la salida en la ventana del navegador. El "problema" en este caso es que iftop es una aplicación que queda corriendo y además refresca continuamente el contenido mostrado en pantalla, por lo que no sé como hacerlo. Si por ejemplo se pudiera hacer que se muestre una actualización cada 5 segundos con eso me sirve (de hecho un "botoncito" que ya está implementado hace eso, corre un comando y mediante código en HTML le digo que cada 10 segundos refresque la pantalla por lo que vuelve a correr el comando). Tampoco es necesario que me abra el resultado de iftop en otra ventana / pestaña del navegador (aunque sería lo ideal). Si se puede hacer por ejemplo que abra Konsole y de ahí lo ejecute también me sirve. De antemano muchas gracias. Saludos! Mauro. -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Wed, 13 Jan 2010 08:30:02 -0200, Mauro Antivero escribió:
Necesito hacer si es que se puede una página web en PHP la cual tenga un "botón" que al precionarlo me abra una ventana / pestaña nueva y que me corra el comando iftop con una determinada IP que se le pasa como parámetro.
(...)
Para correr por ejemplo el comando "ls" y otra gran variedad utilizo las funciones "exec" (o similares, según el caso) y "foreach" de PHP, para que me muestre la salida en la ventana del navegador. El "problema" en este caso es que iftop es una aplicación que queda corriendo y además refresca continuamente el contenido mostrado en pantalla, por lo que no sé como hacerlo.
En la página del manual de la función exec() de php tienes un ejemplo para mostrar el resultado de la salida del comando "top", que debe ser similar al de "iftop". Mira a ver si te sirve. http://php.net/manual/en/function.exec.php (busca por /bin/top) En cualquier caso siempre podrás enviar la salida a un archivo y leer los datos desde ahí ¿no? :-?
Si por ejemplo se pudiera hacer que se muestre una actualización cada 5 segundos con eso me sirve (de hecho un "botoncito" que ya está implementado hace eso, corre un comando y mediante código en HTML le digo que cada 10 segundos refresque la pantalla por lo que vuelve a correr el comando).
Pues no me parece mal el sistema del botón que usas actualmente para refrescar la página. Podrías automatizar la actualización, bien mediante código php o html (etiqueta meta "auto refresh") pero a la w3c no le hace mucha gracia ese tipo de "automatismos", prefiere que sea el propio usuario quien decida cuándo y cómo actualizar la página :-) Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Camaleón escribió:
El Wed, 13 Jan 2010 08:30:02 -0200, Mauro Antivero escribió:
Necesito hacer si es que se puede una página web en PHP la cual tenga un "botón" que al precionarlo me abra una ventana / pestaña nueva y que me corra el comando iftop con una determinada IP que se le pasa como parámetro.
(...)
Para correr por ejemplo el comando "ls" y otra gran variedad utilizo las funciones "exec" (o similares, según el caso) y "foreach" de PHP, para que me muestre la salida en la ventana del navegador. El "problema" en este caso es que iftop es una aplicación que queda corriendo y además refresca continuamente el contenido mostrado en pantalla, por lo que no sé como hacerlo.
En la página del manual de la función exec() de php tienes un ejemplo para mostrar el resultado de la salida del comando "top", que debe ser similar al de "iftop". Mira a ver si te sirve.
http://php.net/manual/en/function.exec.php
(busca por /bin/top)
En cualquier caso siempre podrás enviar la salida a un archivo y leer los datos desde ahí ¿no? :-?
Ahora lo miro, muchísimas gracias. Mmm... lo de enviar la salida a un archivo está muy bueno, pero se puede enviar la salida de iftop a un archivo? Ahora voy a probar, recién leo tu respuesta así que todavía no probé nada. Pensaría que no, pero vamos a ver. El mismo comando exec ya le puede pasar la salida a un array y uno luego con la instrucción foreach muestra línea a línea el contenido de ese archivo, tal cual se vería en una consola (lo tengo funcionando con el archivo de log del DHCP).
Si por ejemplo se pudiera hacer que se muestre una actualización cada 5 segundos con eso me sirve (de hecho un "botoncito" que ya está implementado hace eso, corre un comando y mediante código en HTML le digo que cada 10 segundos refresque la pantalla por lo que vuelve a correr el comando).
Pues no me parece mal el sistema del botón que usas actualmente para refrescar la página. Podrías automatizar la actualización, bien mediante código php o html (etiqueta meta "auto refresh") pero a la w3c no le hace mucha gracia ese tipo de "automatismos", prefiere que sea el propio usuario quien decida cuándo y cómo actualizar la página :-)
Saludos,
Mmm... En este caso me es sumamente útil el autorefresco, así que lo lamento por la w3c :P Saludos y gracias. Mauro. -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Mauro Antivero escribió:
Camaleón escribió:
El Wed, 13 Jan 2010 08:30:02 -0200, Mauro Antivero escribió:
Necesito hacer si es que se puede una página web en PHP la cual tenga un "botón" que al precionarlo me abra una ventana / pestaña nueva y que me corra el comando iftop con una determinada IP que se le pasa como parámetro.
(...)
Para correr por ejemplo el comando "ls" y otra gran variedad utilizo las funciones "exec" (o similares, según el caso) y "foreach" de PHP, para que me muestre la salida en la ventana del navegador. El "problema" en este caso es que iftop es una aplicación que queda corriendo y además refresca continuamente el contenido mostrado en pantalla, por lo que no sé como hacerlo.
En la página del manual de la función exec() de php tienes un ejemplo para mostrar el resultado de la salida del comando "top", que debe ser similar al de "iftop". Mira a ver si te sirve.
http://php.net/manual/en/function.exec.php
(busca por /bin/top)
En cualquier caso siempre podrás enviar la salida a un archivo y leer los datos desde ahí ¿no? :-?
Ahora lo miro, muchísimas gracias.
Mmm... lo de enviar la salida a un archivo está muy bueno, pero se puede enviar la salida de iftop a un archivo? Ahora voy a probar, recién leo tu respuesta así que todavía no probé nada. Pensaría que no, pero vamos a ver. El mismo comando exec ya le puede pasar la salida a un array y uno luego con la instrucción foreach muestra línea a línea el contenido de ese archivo, tal cual se vería en una consola (lo tengo funcionando con el archivo de log del DHCP).
Si por ejemplo se pudiera hacer que se muestre una actualización cada 5 segundos con eso me sirve (de hecho un "botoncito" que ya está implementado hace eso, corre un comando y mediante código en HTML le digo que cada 10 segundos refresque la pantalla por lo que vuelve a correr el comando).
Pues no me parece mal el sistema del botón que usas actualmente para refrescar la página. Podrías automatizar la actualización, bien mediante código php o html (etiqueta meta "auto refresh") pero a la w3c no le hace mucha gracia ese tipo de "automatismos", prefiere que sea el propio usuario quien decida cuándo y cómo actualizar la página :-)
Saludos,
Mmm... En este caso me es sumamente útil el autorefresco, así que lo lamento por la w3c :P
Saludos y gracias.
Mauro.
No funcionó con iftop. El ejemplo de top funciona (aunque no es muy prolija que digamos la salida que presenta) pero con iftop no me doy cuenta como hacerlo... Este comando que necesito correr (iftop) lo debe hacer en un servidor remoto, el cual tiene la página web de administración. Por lo que tengo entendido PHP es interpretado por el servidor, mientras que Javascript es intepretado por el cliente. No habrá manera de correr una consola en mi PC a la cual le pase los parámetros adecuados para que se conecte via ssh al servidor y ejecute iftop? Esto es lo que se me ocurre por ahora, si a alguno se le ocurre otra idea bienvenida sea. También probé pasar a un archivo lo que obtengo con iftop y no resultó (iftop -i ethx -> iftop.txt), me dice parámetro inválido (al parecer toma el "-> iftop.txt" como si fuera un parámetro más). Si a alguien se le ocurre como poder volcar lo obtenido por iftop a un archivo de texto después podría idear un script que filtre eso y me muestre en pantalla la información que deseo. Saludos y gracias. Mauro. -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
También probé pasar a un archivo lo que obtengo con iftop y no resultó (iftop -i ethx -> iftop.txt), me dice parámetro inválido (al parecer toma el "-> iftop.txt" como si fuera un parámetro más).
debería ser "iftop -i ethx > iftop.txt" , es decir redirigir la salida estandar con ">" en vez de darle como párametro redirigir la salida "->". Un saludo, José F. Soriano -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Disculpad si esto se ha nombrado ya en el hilo, estoy escribiendo desde el móvil y no tengo disponible toda la conversación, pero me ha venido la palabra la cabeza y aprovecho para mencionarlo. Había algo llamado PHPShell, tal vez sirva. Saludos!! El 13/01/2010, a las 18:00, sorianojf@orange.es escribió:
También probé pasar a un archivo lo que obtengo con iftop y no res ultó (iftop -i ethx -> iftop.txt), me dice parámetro inválido (al pare cer toma el "-> iftop.txt" como si fuera un parámetro más).
debería ser "iftop -i ethx > iftop.txt" , es decir redirigir la sali da estandar con ">" en vez de darle como párametro redirigir la salida "->".
Un saludo, José F. Soriano -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Wed, 13 Jan 2010 14:10:02 -0200, Mauro Antivero escribió:
No funcionó con iftop. El ejemplo de top funciona (aunque no es muy prolija que digamos la salida que presenta) pero con iftop no me doy cuenta como hacerlo...
La salida debería ser habitual de "top" :-?
Este comando que necesito correr (iftop) lo debe hacer en un servidor remoto, el cual tiene la página web de administración. Por lo que tengo entendido PHP es interpretado por el servidor, mientras que Javascript es intepretado por el cliente. No habrá manera de correr una consola en mi PC a la cual le pase los parámetros adecuados para que se conecte via ssh al servidor y ejecute iftop? Esto es lo que se me ocurre por ahora, si a alguno se le ocurre otra idea bienvenida sea.
También probé pasar a un archivo lo que obtengo con iftop y no resultó (iftop -i ethx -> iftop.txt), me dice parámetro inválido (al parecer toma el "-> iftop.txt" como si fuera un parámetro más).
Si a alguien se le ocurre como poder volcar lo obtenido por iftop a un archivo de texto después podría idear un script que filtre eso y me muestre en pantalla la información que deseo.
Ouch! Pues tienes razón, parece que ese programa no permite volcar la salida a un archivo... caray :-O [Iftop-users] Logging to file http://lists.beasts.org/pipermail/iftop-users/2009-September/000293.html ¿Y necesitas usar ese programa en concreto? Tiene que haber algún otro que permita el volcado de los datos a un archivo y que te pueda servir. Puedes buscar en YaST dentro del mismo grupo de paquetes RPM donde está el "iptop" a ver qué encuentras... (...) El "iptraf", por ejemplo, permite enviar la salida a un archivo, pero no sé si te valdrá :-? Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Camaleón escribió:
El Wed, 13 Jan 2010 14:10:02 -0200, Mauro Antivero escribió:
No funcionó con iftop. El ejemplo de top funciona (aunque no es muy prolija que digamos la salida que presenta) pero con iftop no me doy cuenta como hacerlo...
La salida debería ser habitual de "top" :-?
Este comando que necesito correr (iftop) lo debe hacer en un servidor remoto, el cual tiene la página web de administración. Por lo que tengo entendido PHP es interpretado por el servidor, mientras que Javascript es intepretado por el cliente. No habrá manera de correr una consola en mi PC a la cual le pase los parámetros adecuados para que se conecte via ssh al servidor y ejecute iftop? Esto es lo que se me ocurre por ahora, si a alguno se le ocurre otra idea bienvenida sea.
También probé pasar a un archivo lo que obtengo con iftop y no resultó (iftop -i ethx -> iftop.txt), me dice parámetro inválido (al parecer toma el "-> iftop.txt" como si fuera un parámetro más).
Si a alguien se le ocurre como poder volcar lo obtenido por iftop a un archivo de texto después podría idear un script que filtre eso y me muestre en pantalla la información que deseo.
Ouch! Pues tienes razón, parece que ese programa no permite volcar la salida a un archivo... caray :-O
[Iftop-users] Logging to file http://lists.beasts.org/pipermail/iftop-users/2009-September/000293.html
¿Y necesitas usar ese programa en concreto? Tiene que haber algún otro que permita el volcado de los datos a un archivo y que te pueda servir. Puedes buscar en YaST dentro del mismo grupo de paquetes RPM donde está el "iptop" a ver qué encuentras...
(...)
El "iptraf", por ejemplo, permite enviar la salida a un archivo, pero no sé si te valdrá :-?
Saludos,
Gracias a todos por su ayuda, estoy viendo si puedo lograr algo pero todavía nada. Les explico mejor lo que tengo que hacer: Trabajo en el servicio de Internet de mi ciudad, en el cual tenemos un sistema de control hecho en HTML / PHP. Cuando llama un usuario X obtenemos rapidamente sus datos (IP asignada, MAC, etc). Lo que hacíamos hasta el momento es ni bien llama alguien ver primero que el modem esté registrado y los niveles de señal del mismo (el servicio está basado en cablemodems) y luego que la PC haya tomado la dirección IP que el servidor DHCP le quiere asignar. Si estas dos cosas sucedían lo que hacíamos luego era "monitorear el tráfico de esa IP", para lo cual hay un script que hizo un compañero de acá que usa iftop junto con otros parámetros para "filtrar" la IP en cuestión. Estos tres pasos que arriba expliqué los hacíamos en una consola (a través de SSH) en el servidor, lo cual si bien era muy efectivo era un tanto molesto, ya que estaba fuera de la página web de administración. Lo que logré entonces en estos días es poder ver las dos primeras cosas (que el modem esté registrado así como también los niveles de señal y que la PC haya tomado IP) en la página de adminsitración, lo cual resulta muy útil y cómodo. Lo que me falta ahora lo veo más complicado, ya que no tengo manera de volcar lo mostrado por iftop a un archivo de texto. Si se pudiese hacer eso haría un simple script que por ejemplo refresque el archivo cada 5 segundos y que muestre su contenido en la página web de administración. Como esto no se puede la verdad que de momento no sé que hacer. Estoy viendo lo que hace ntop y leyendo sus otras recomendaciones, pero ahora que expliqué un poco mejor mi situación capaz que a alguno de ustedes se le ocurre una mejor idea. Desde ya muchísimas gracias por su ayuda. Saludos y éxitos. Mauro. -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Thu, 14 Jan 2010 08:41:33 -0200, Mauro Antivero escribió:
Camaleón escribió:
El "iptraf", por ejemplo, permite enviar la salida a un archivo, pero no sé si te valdrá :-?
Gracias a todos por su ayuda, estoy viendo si puedo lograr algo pero todavía nada. Les explico mejor lo que tengo que hacer:
(...)
Lo que me falta ahora lo veo más complicado, ya que no tengo manera de volcar lo mostrado por iftop a un archivo de texto. Si se pudiese hacer eso haría un simple script que por ejemplo refresque el archivo cada 5 segundos y que muestre su contenido en la página web de administración. Como esto no se puede la verdad que de momento no sé que hacer.
Iftop no lo permite. Prueba con IPTtraf. Ese programa sí contempla el volcado de los datos a un archivo que luego puedes leer. Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2010-01-13 a las 14:10 -0200, Mauro Antivero escribió: ...
También probé pasar a un archivo lo que obtengo con iftop y no resultó (iftop -i ethx -> iftop.txt), me dice parámetro inválido (al parecer toma el "-> iftop.txt" como si fuera un parámetro más).
Y lo es. Tal como lo has escrito, lo es.
Si a alguien se le ocurre como poder volcar lo obtenido por iftop a un archivo de texto después podría idear un script que filtre eso y me muestre en pantalla la información que deseo.
Hay una herramienta hecha que quizás te valga: ntop. Hay un daemon que recoge datos en una máquina sobre todo lo que ve en la red, y te presenta una página web muy completa con estadísticas y datos. - -- Saludos Carlos E. R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAktOLPgACgkQtTMYHG2NR9US6ACdGYhu0j3UaoPW469V18IQNNtV /uwAn0rdih8mSNo37E2facmktBsTJdCf =7asd -----END PGP SIGNATURE-----
participants (5)
-
Alfredo Amaya
-
Camaleón
-
Carlos E. R.
-
Mauro Antivero
-
sorianojf@orange.es