Ir al contenido principal

Entradas

Mostrando entradas de 2016

Introducción a sed I

Otro más de mis favoritos en la consola de GNU/Linux: sed. Este Stream EDitor es similar a grep, salvo que puede hacer afectaciones a los archivos (no por defecto). No todas las expresiones regulares de grep funcionan transparentemente en sed, así que es buena idea acostumbrarse a cada uno. Conociendo la sintaxis y los modificadores no hay cosa que se le resista. No pretendo hacer una extensiva introducción a sed. Quiero que sea una receta rápida a las cosas que se pueden realizar con éste. Es importante que sepan que a diferencia de un bash script común y corriente, donde todas las instrucciones se ejecutan secuencialmente. Sed aplica todas las expresiones/instrucciones a la misma línea del archivo objetivo y hasta que no se apliquen la totalidad no continua con las subsecuentes líneas. Por supuesto, que las líneas que no empaten se mantendrán sin modificación alguna.  Los patrones/regex siempre van entre diagonales (/regex/). La manera simple en que pueden valid...

Introducción a grep II

Es muy importante estar al pendiente de la sintaxis y particularidades de muchos de los caracteres dentro de la definición de clases de caracteres. Su mala utilización produce errores o resultados inesperados. Esas particularidades son las que me encanta mantener en mente, me da la sensación es que es una manera de adquirir valía como administrador de sistemas, y por ende, consultor. Para ilustrar la idea a la que hago referencia, utilicemos los siguientes ejemplos.   - (uso de guión) ] (corchete cuadrado) Uso de guión. Para utilizar este signo, siempre hay que incorporarlo al inicio de la clase, por ejemplo: grep " [- aeiou]" letters.txt   Si lo pusiéramos en otro lugar, sería la definición de un rango.  Corchete cuadrado. Cuando deseamos incorporar a una clase el signo de corchete, es éste el primero que debemos colocar justo después de la apertura de la clase. Por ejemplo, si queremos buscar todas las palabras que contengan los car...

Introducción a grep

G/er/p Lo prometido es deuda. En el artículo anterior, hice la promesa que regresaría con más información para desempolvar los dedos. Esta vez hablaré un poco de cómo construir expresiones regulares (aka regex) para la extracción de información. Para lo siguiente, el consejo que le doy a los novatos es que consideren 4 cosas al momento de realizar la construcción de sus búsquedas y probarlas. Es importante asegurarse que los datos que están observando son realmente todos los que son y que éstos no se ven sesgados por datos de otra clase. Las premisas que en todos los casos deben ser ciertas son: Qué empata. Qué NO empata. Qué empata pero No debería empatar. Qué no empata, pero debería empatar. Insisto en la importancia de mantener la consistencia en los resultados. Si vamos a presentar un informe con fechas, números, promedios y picos; cualquier volumen de datos podría generar una desviación en la verosimilitud de toda la información, poniendo en riesgo las medidas ...

Intruducción a AWK

Estos días he andado muy activo con el reforzamiento de algunos temas, especialmente los que más me interesan. AWK y Sed han sido, por mucho tiempo, mis herramientas favoritas en la elaboración de estadísticas y reportes. No son especialistas en la presentación de la información (no grafican), pero con algo de imaginación, quedan bastante inteligibles las salidas. He estado revisando el libro de Sed & AWK de Ardnold Robbins y Dale Dougherty , cuyo contenido hasta ahora me ha parecido excelso. Su estructura y manera de explicar las posibilidades provienen de la experiencia, no de la teoría. Un punto muy bueno por los autores. Es ameno leerlos, los ejemplos se organizan por complejidad/utilidad, explicándolos poco a poco sin que caiga en un man del sistema y que al final la información esté en los terrenos de lo baladí. Recomiendo mucho su lectura, el aprendizaje de estas dos herramientas es vital si desean manejar y entender los registros del sistema y aplicaciones. Su poder ...

Áreas de un círculo.

Recientemente ando desempolvando algunos conocimientos en lenguajes de programación. No porque el día a día me los exija, pero siempre es bueno la comprensión desde las entrañas de lo que adminisitras. Otro punto es que la programación mantiene al cerebro despierto y posibilida su mejor comprensión de las cosas. Este caso encontré unos apuntes cuando estudiaba la preparatoria hace poco más dee 10 años. En ese momento vimos algo de C. Más por melancólico que por sentido de la practicidad, subo uno de los códigos que encontré. Con algo de tiempo, iré subiendo más de mis apuntes, solo como parte de una memoria histórica de mi paso por las TI. El objetivo del código es ralizar ene cantidad de cálculos de áreas de círculos (hasta que la palabr FIN sea encontrada). Elegí este código por el uso de estructuras; tipos de datos que ya había olvidado y que gracias mi cuaderno las recordé. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

Un hombre es real...

Un hombre es real y viril en medida que lucha contra la naturaleza. Un hombre es un tanto más rico en espíritu cuantos más aspectos múltiples y contradictorios haya en él. Y la virilidad aquí consiste en mantener las contradicciones, en soportarlas pese a la lucha y el dolor, para no perder ni una de ellas. Henry Lefebvre

Sobre la libertad.

Sobre la libertad es un ensayo realizado por Stuart Mill en los primeros años de 1800. Solo recordemos que en esos años el Imperio Británico conocía sus mejores momentos, tanto en lo político como en lo económico. Sin duda sus argumentos están impregnados de éste carácter imperialista, donde la ponderación de la verdad , es el primer cometido de toda la humanidad. No suscribo con esa posición, porque el trato que pueden esperar las civilizaciones atrasadas , no es más que dominación bajo los retorcidos fierros de esa verdad . No me meteré en los temas sobre qué puede ser una verdad y qué una mentira. No estoy capacitado para ello. Su ensayo versa sobre los mecanismos que hacen a un hombre libre, sus interacciones y sus límites. Las inclinaciones universales del hombre por hallar la verdad y su superación. Para él la verdad es un ente que se compone, se distribuye, en los diferentes saberes y opiniones humanas, mismas que también contienen la falsedad. No suscribo con la v...

Acercándonos a GDB

Todo desarrollador, y curioso, debe saber la manera obtener los estados de su aplicación a efectos de corregir errores, o simplemente para buscar la mejora en sus prácticas de codificación. Como administrador del sistema operativo, también es útil conocer un poco de ésto, ya que nos permite dilucidar causas de problemas y, eventualmente, corregirlos por la propia mano. Para eso se inventaron los debuggers .  Linux tiene mucho de su código desarrollado en C y C++, así que cualquier conocimiento que ganemos sobre este lenguaje, nos hará más aptos para su dominio. En la búsqueda de más información me encontré con un documento muy práctico para comenzar con algunos conceptos y ejemplos. Por tales motivos lo comparto con los incautos que lleguen aquí. Download PDF

Algunas configuraciones básicas en Riemann

A últimas fechas estaré hablando mucho de Riemann,un software que como espina dorzal, funciona muy bien en diferentes propósitos de monitoreo. Creo que su competidor, o alternativa, más cercana, es Nagios, solo que por Riemann, no se paga un solo peso. Riemann es muy flexible, puesto que por si mismo puede ser un agente de monitoreo  muy completo (tiene muchos plugins), pero su verdadero poder reside en los múltiples conexiones que tiene con otros proyectos, como Graphite, Collectd y  Grafana, por nombrar solo algunos. Por esta característica, es muy útil hacerlo funcionar como un event engine , el cual se encargará de dotar de un formato y un ruteo de métricas. En algún punto, también permite tomar decisiones sobre ellas. Es decir, en Riemann pueden recaer todas las  especificidades de alarmado y tomda de decisiones en función de los valores de las métricas. En este segundo post de Riemann abordaré como ejecutarlo y algunos de los primeros pasos para familiarizarse ...

Formateando salida de SAR

SAR es la herramienta por excelencia para el monitoreo de los sistemas operativos GNU/Linux. Cuenta con históricos, además de una gran cantidad de métricas relacionadas al desempeño de nuestro servidor, como cpu, memoria, I/O y red. Cada uno de estos hitos puede ser diseccionado con mayor granularidad, es decir, observar la parte que compone cada recurso. Algunas veces es necesario realizar reportes de desempeño a otras áreas o incluso para efectos de conocimiento de patrones de utilización de cada servidor. Por desgracia, las formas de llevar a un modelo de visualización más amable es tarea un poco más complicada y no está incorporada por defecto con SAR. Existen herramientas ex profeso, sin embargo, tienen que ser utilizadas con cierta complejidad y algunas veces no producen el resultado deseado, como por ejemplo, gráficas de muy pobre visualización. En lo personal me gusta graficar las métricas; son una manera muy simple de entender lo que sucede y enfocarnos en los momento...

Instalación de Riemann

El tema del monitoreo es por sí solo vasto y exige cierto nivel de especialización y comprensión. Como todas las soluciones de software , el establecimiento de una arquitectura y elección de productos conlleva un conocimiento profundo del las necesidades y las mejores opciones disponibles, no solo en términos de costos, sino de prestaciones y flexibilidad de los productos que están en el mercado. No es cosa fácil establecer un flujo y tratamiento adecuado de las métricas recolectadas. En lo que mi experiencia acontece, éste rubro de las TI apenas se le da importancia, se mira como un gasto que no tiene retorno. Los profesionales lo entienden como la manera en detectar problemas en los ambientes productivos, pero que si se detectan vía registros, el problema está cuasi resuelto, por tanto, la necesidad de un sistema complejo de monitoreo no es necesario.  No estoy a favor de acumular datos y sólo mantenerlos por si llegasen a requerirse en algún punto, si l...

Compilando un kernel

Esta nota no es nada nuevo, solo es un recetario muy básico de compilación de un kernel Linux con las especificaciones que usa la versión del kernel actual. Para mi es una lata estar cambiando constantemente las instalaciones de Fedora, por lo cual opto por compilar el kernel y así estar al último grito de la moda. Sé que conlleva más tiempo que si lo instalara desde cero. Ya sé que existe el particionamiento de volúmenes, y de hecho es como lo tengo, donde podemos instalar en el volumen específico del sistema operativo. Con esta opción no pierdo las adecuaciones de mi entorno gráfico, como las hotkeys, barras y distribuciones de mi XFCE y otras cosas que me han levado años configurar. Así que vamos a hacerlo. Lo primero es bajarse el kernel de linux de kernel.org.  Lo segundo es descomprimirlo. Yo lo hago en /usr/src/kernels.  Lo tercero es copiamos el archivo /boot/config-4.4.6-201.fc22.x86_64 (el nombre depende de la versión actual del kernel) a la ...

Descarga de logs

Muchas veces es necesario, como administrador de middleware o de plataforma hacer la descarga periódica de logs. Está demás decir para qué puede servirnos retenerlos, pero una forma simple y fácil es como la siguiente. #!/bin/sh ######################################################################################## # # # Descarga los los de las aplicaciones administradas. # Lo ideal es que esté ejecutándose en un escheduler, como cron. # # 08 Septiembre 2016 # ######################################################################################## # Variables globales DIR_NAME=`date +'%B'` LAST_MONTH=`date +'%B' -d 'last month'` LAST_MONTH_NUM=`date +'%m' -d 'last month'` SUFFIX_LOG=`date +'%Y-%m'` # APP1 USER="remoteuser" SERVER_1="172.23.100.xxx" LOCAL_LOG_PATH="/home/lyonn/produccion/app1/log/$DIR_NAME" SERVER_REMOTE_LOG_PATH="/opt/jboss/app/myapp1/production/log/*$SUFFIX_LO...

¿Cómo saber que nuestro sistema ha sido comprometido?

En este post no busco ahondar mucho sobre las formas y procedimientos que un profesional forense debe considerar. Solo quiero hacer un escrito lacónico que ayude a los neófitos como yo, a buscar la mejora ante las adversidades. Las ideas las tomé de Linux Hardening , un libro ya entrado en años pero que se mantiene vigente con la respectiva evolución de las herramientas que ilustra.  Cuando un sistema es vulnerado, o pensamos que lo ha sido; de alguna manera es tarde y ésto sólo nos ayudará a prevenir por medio de la rutinaria inspección de cada servidor (puede contarse con una automatización y paulatinamente con herramientas más profesionales). En medida de lo posible, recomiendo que prevengamos una cosa. Aseguremos que cada comando que utilicemos sea el que instalamos. Pienso que si un atacante puede comprometer nuestro sistema y sembrar piezas de software que lo mantengan oculto, no le será nada difícil manipular algunos de los comandos que nos permitirían reconocerlo. ...

Comenzando con DevOps

Si bien el concepto no es nuevo, se ha puesto de moda. Pocos son los empleos en los que no se hable de las "nuevas metodologías ágiles" para el ciclo de vida de desarrollo y operaciones IT. Me ha interesado nutrirme del tema con las voces que más experiencia tienen en el ramo.  El siguiente documento lo hallé en Internel, el cual me pareció que valía la pena por lo conciso que es y la explicación clara. Es ambicioso en muchos aspectos, que en mi experiencia rara vez se cumplen, pero aún así, como dije, no tiene desperdicio. En resumen y siendo muy simplistas, devops es una filosofía de ayudas mutuas de cara a los continuos cambios. Ya veremos si ésto es cierto en las empresas que lo consoliden, meta ambiciosa pero no por ello imposible. Descargar documento.

Ficciones (Borges)

Es sin duda uno de libros íconicos de la escritura borgiana. Contiene relatos de los primeros años de Borges como escritor y son, desde mi humilde perspectiva, experimentales. Su prosa es maravillosa, y por algunos momentos, brabucona. Sí, me pareció que derrocha intelectualidad en cada tanto, aunque procura evitarla lo más posible. ¿Su condición de intelectual lo traiciona o la arqueotipica costumbre de los argentinos? Debe ser un autor de cabecera para todas las personas que lleven algunos años en la lectura. Borges no la pone fácil, mucho menos si nuestras referencias son muy limitadas y aún más la imaginación. El típico estilo que maravilla, provoca al lector a adelantarse lo más que pueda, aunque pocas veces se consigue. Los finales son trepidantes, cambian la intención de algunas páginas con tan solo dos o tres párrafos. No se miran apurados ni cortos, la narrativa es impecable y de lo mejor lograda. Me dio la impresión que el lector juega un papel de inspector ...

De la finitud (último libro de Günter Grass)

El día de ayer me di la oportunidad de leer el libro póstumo de un escritor formidable. No es lo primero que leo de él, conozco la sensatez y el sentido del humor cáustico que caracteriza a Grass. Esta vez fue su despedida. Su voz me llegó desde el más allá (aunque estoy seguro que no fue de tan allá, porque él mismo no creía en esos parajes lejanos). El corazón se me estrujó con las declaraciones de su pronta expiración. El recuento de algunos años de su juventud, como si fueran los recuerdos que más atesorara y los únicos que valían la pena tener en el momento de morir, se transformaron en vesos e ilustraciones. Me da gusto saber que ese ser humano se fue con total lucidez a la tumba como si de comprar una casa se tratara o planear sus próximas vacaciones. Hizo un pacto con la huesuda para que las cosas sucedieran en determinado momento. Sus versos me dan alegría, saber que de viejo las personas aceptamos y vemos la muerte de otra manera, quizá la satisfacción de tener una v...

Encriptando un sistema de archivos

Es una práctica común entre los administradores de GNU/Linux realizar encriptación de particiones. Esto con el fin de evitar el robo de información o su alteración una vez que el sistema se ve comprometido. Para la tarea podemos utilizar un sin fin de herramientas. Yo lo demostraré con dm-crypt. Por motivos de practicidad crearé un archivo que utilizaré como partición ( loop device ); ustedes pueden utilizar una memoria USB o un disco. Verificamos que el paquete se encuentre instalado.  El comando losetup genera un loop device .  Ahora sí, realizamos la encriptación del loop device que acabamos de realizar. Nos va a pedir una contraseña. Es importante resguardarla correctamente porque si la perdemos no habrá forma de recuperar los archivos encriptados.  Podemos ver que ya está en /dev/mapper el dispositivo que estamos encriptando.  Validamos vía crypsetup que se encuentre activo.  Como la creación de particiones, ...