
Esto es una cosa que me tocó hacer para el FTPBOT, esas herramientas en la Shell de Linux cada vez me descrestan mas.
Bueno, el caso es que si queremos reemplazar la ocurrencia de todos los espacios en blanco en un archivo o en una linea, por un caracter como el punto y coma ";", lo podemos hacer de la siguiente manera:
Supongamos tenemos la siguiente linea en un archivo llamado prueba:
ESTA LINEA ME TIENE DE LOS HUEVOS
Para hacer que nuestra linea se vea de la siguiente manera:
ESTA;LINEA;ME;TIENE;DE;LOS;HUEVOS
Hacemos uso de la utilidad tr como lo indico a continuación:
$ tr -s " " ";" < prueba
¿Qué...!!!!? ¿no le has visto la utilidad al asunto? Yo no se, pero pensemos que podemos procesar todas las líneas de un archivo para que sus "campos" queden separados por punto y coma, mejor dicho convertimos lo que sea en un CSV en "par g", sin abrir Excel ni nada de esas huevonadas. En el post del FTPBOT se darán cuenta que en la linea que comienza con la instrucción CURRENT_DAEMON hago uso de esta utilidad para extraer la palabra [vsftpd] de la salida que ofrece el comando ps U {user}.
Ahí les dejo la inquietud del comando tr.
::INTRO y PROBLEMA::
El problema: Implementar un proceso automático que sea capaz de notificar y enviar por correo electrónico los archivos que se suban a un directorio particular mediante sesiones FTP. El proceso debe ser capáz de examinar el directorio particular (sin recursividad) al cual se han subido los archivos y obtener el tamaño de cada archivo contendio en éste y notificarlo via e-mail a los destinatarios de interés. Una vez completado el requerimiento anterior, el proceso debe ser capáz de enviar mediante un mensaje de correo electrónico, el archivo encontrado en el directorio particular y adjuntarlo como parte del mensaje. Enviado el archivo adjunto, el proceso deberá eliminar del directorio particular especificado, el archivo que se acaba de enviar.
::LA SOLUCION::
Inicialmente pensé en darle solución al requerimiento anterior codificando un script en perl o en php, para este último, apoyándome en class.phpmailer.php y class.smtp.php; componentes que una vez utilicé en un proyecto web y que me parecieron supremamente sencillos de utilizar para lo que tiene que ver con el envio de correo electrónico.
Finalmente se me acordé de la potencia del Shell de Linux que junto con programas como mutt me podrían resolver el problema. La solución final quedó así:
::[INTRO]::
Este tema de LDAP es bastante extenso, pero una de las cosas mas importantes cuando configuramos un directorio, es su cargue inicial. En este asunto no voy a entrar en detalle de muchas cosas, para eso está toda la documentación relacionada con el protocolo LDAP.
::[HOWTO]::
::[INTRO]::
Continuando con esta serie de mini-mini-HOWTOs, se explica en este nuevo elemento, los comandos necesarios para asignar una dirección IP a una interface de red de nuestro sistema Linux.
::[HOWTO]::
Para establecer la dirección IP de una interface de red, basta ejecutar el siguiente comando:
# ifconfig <dispositivo de red> <dirección ip> netmask <mascara de red>
::[INTRO]::
Casi todo el enfoque que le doy a estos mini-mini-HOWTOs se basa en "como hacer esto o aquello" por la consola del sistema. Y es que cada vez que trabajamos mas con el pingüino, a veces se nos olvida que existe un entorno gráfico y a veces es mejor que se nos olvide para no quedarnos "varados" el día en que a nuestro pingüino no le de por vestirse con alguno de sus habituales escritorios como gnome o kde.
::[INTRO]::
Comienzo esta colección de mini-mini-HOWTOs que he ido recolectando con mi trabajo diario con el sistema operativo Linux, algunos pueden ser muy sencillos, pero mas que sencillos o complicados, para mi, son asuntos que hacemos un par de veces o muchas veces y nunca memorizamos. Al menos para mi, algunas secciones de esta colección son de consulta obligada cuando realizo algunos montajes con este sistema operativo. Sin mas "chafa" aquí voy.
::[HOWTO]::
Supongamos, tenemos la siguiente problemática (un escenario típico):
Bien, ahora supongamos que estamos trabajando en la maquina donde esta el pingüino sentado y deseamos que esa máquina tenga conexión a Internet. Si observamos con detalle la topología ilustrada, veremos que quién provee el acceso a Internet para la Red Local (LAN) es el Firewall (192.168.0.254). Con lo anterior concluimos que:
- El default gateway (DG) o puerta de enlace por defecto para la red local (192.168.0.0) es el Firewall 192.168.0.254.
- Nos toca agregar una ruta a la tabla de enrutamiento del kernel en la maquina donde esta el pingüino sentado, diciendo que: para enviar paquetes a Internet, utilice la puerta de enlace por defecto de la red a la cual el pertenece. (Como lógico, no?)
Ahora bien, ¿como hacemos para agregar la famosa ruta?. Sencillo, basta con entrar el siguiente comando:
-> Inicio -> Panel de control -> Agregar o quitar programas -> Agregar o quitar componentes de Windows -> Licencias de Terminal Server
No se si esta herramienta funcione con Win 9X (creo que no), si se que funciona muy bien con Win2000, XP.
Para guardar la configuración de red a un archivo de texto que luego se pueda utilizar, se utiliza el siguiente comando:
netsh dump > mi_red_cfg.txtOJO: Que el signo ">" está redirigiendo la salida del comando al archivo "mi_red_cfg.txt".
Para subir la configuración nuevamente al equipo, ejecutamos el siguiente comando:
CODIGOS DE NIVEL
Introduce cualquiera de los siguientes códigos como si fuera tu nombre (se te indican los passwords para los tres niveles de dificultad):Nivel 1 : XHGDR / PLKUM / PVTSL Nivel 2 : WKUC4 / JE5SH / SKDJF Nivel 3 : YSM51 / DFY3B / 3DYNG Nivel 4 : B7D8F / K9D3H / 9BG3S Nivel 5 : 3GHSL / NMWQ9 / KJWJK Nivel 6 : AZLM1 / 16G3L / E2J7H Nivel 7 : JAHSG / WL3CZ / ZX78Y Nivel 8 : UN63A / LPQ6T / TRIB4 Nivel 9 : VAZ2P / SRCMS / TRD78 Nivel 10: 9TT5W / PAEN8 / 1LPQDLink de referencia
En el archivo de configuración de PHP (php.ini), en la sección indicada a continuación, colocar el valor de la variable display_errors en "On" o en "Off" según sea el caso. Hay que tener en cuenta que por seguridad, en lo sitios de producción,