Archive for the 'Shell' Category

Permisos chmodCuántas veces tenemos un árbol de directorios y por cualquier cosa debemos aplicarle un chmod diferente a los archivos y a los directorios?

Pues bién, me he encontrado con esta necesidad y he pensado un shell script que recorriera un árbol de directorios dado y aplicara el chmod dependiendo si encuentra un archivo o un directorio. Y ya que estaba metido, lo he adornado aceptando parámetros y haciendo alguna pequeña comprobación antes de que se ponga a trabajar.

A continuación cuelgo el código fuente y lo explico un poco.

OracleLa instalación por defecto de PHP no lleva soporte para Oracle si en el momento de su instalación no había ni un cliente ni un servidor Oracle en el sistema. La puesta en marcha de un módulo PHP para proporcionar conexión a un Oracle en un servidor remoto consta de dos pasos: Instalar el Oracle Instant Client y Generar e instalar el módulo OCI.

Al instalar el servidor web directamente en los primeros pasos de la instalación (ver artículo Instalar Debian 4 Etch en un Compaq Proliant DL 360) recibimos un Apache 2.0 con PHP 5.2.0, e instalaremos el Oracle InstantClient 11.1.0.1-1, generando un módulo PHP usando el código fuente de OCI8 versión 1.2.4 (todo último estable).

Apache TomcatSiguiendo con la instalación del servidor Debian 4 en un Compaq Proliant DL 360 que empezamos en el anterior artículo, esta vez toca instalar un Tomcat para que acepte las conexiones desde un Apache. Para ello debemos tener instalado un Apache (ver el anterior artículo) y realizar los pasos que se describen aquí, que consiste en instalar el JDK de Java, instalar Tomcat 5.5 e instalar el módulo conector mod_jk.

En Linux, para listar las conexiones abiertas, incluso las que sólo estén escuchando un puerto sin transmitir nada, podemos usar netstat. En mi caso, usando netstat con los siguientes parámetros obtengo un listado de interfícies, estado de la conexión y PID/programa que lo ejecuta, muy útil:

netstat -tapn

Para saber el significado de los estados, consultando la Wikipedia tenemos:

  • ESTABLISHED El socket tiene una conexión establecida
  • SYN_SENT El socket está intentando iniciar una conexión
  • SYN_RECV Una petición de conexión fue recibida por la red
  • FIN_WAIT1 El socket está cerrado, y la conexión esta finalizándose
  • FIN_WAIT2 La conexión esta cerrada, y el socket está esperando que finalice la conexión remota
  • TIME_WAIT El socket está esperando después de cerrarse que concluyan los paquetes que siguen en la red
  • CLOSED El socket no está siendo usado
  • CLOSE_WAIT La conexión remota ha finalizado, y se espera que se cierre el socket
  • LAST_ACK La conexión remota ha finalizado, y se espera que se cierre el socket. Esperando el acknowledgement.
  • LISTEN El socket está esperando posibles conexiones entrantes
  • CLOSING Ambos sockets han finalizado pero aun no fueron enviados todos los datos
  • UNKNOWN El estado del socket no se conoce