El tip: Magic SysRq key o qué hacer cuando Linux se queda colgado

Septiembre 17, 2007

Magic SysrqLinux nunca se queda colgado, es la frase favorita de los defensores del pingüino. Hace poco en el trabajo empezamos a tener algunos problemas con uno de los servidores el cual dejaba de responder de repente, sólo respondía al ping pero no se podía acceder en remoto ni en consola. Lo mas extraño es que al reiniciar el servidor no había absolutamente nada en los logs que indicara la causa del fallo, por eso sólo podíamos formular teorías sobre algún fallo en hardware o en la conexión NFS. Buscando causas y soluciones fue como conocí Magic SysRq key.

Magic SysRq key es una combinación de teclas en el kernel de Linux que permite al usuario ejecutar varios comandos de bajo nivel sin importar el estado del sistema. Su uso mas frecuente es para recuperar el sistema en caso de que deje de responder o para reiniciarlo sin corromper el sistema de ficheros (filesystem) pero también puede utilizarse para restaurar el sistema o realizar un volcado de memoria del kernel (core dump). Para poder usar esto se debe habilitar la opción CONFIG_MAGIC_SYSRQ en el kernel antes de compilarlo.

Menuconfig

Así que cuando nos falle el servidor y se quede colgado por algún motivo en lugar de darle botonazo presionamos alt+SysRq + la opción que debemos activar según lo que querramos hacer. Por ejemplo si quisiéramos reiniciar el servidor de forma segura necesitaríamos matar los procesos y sincronizar los discos entre otras cosas así que ejecutaríamos la siguiente secuencia conocida como REISUB:

Alt + SysRq + R devuelve el control del teclado.
Alt + SysRq + E termina (term) todos los procesos (excepto init).
Alt + SysRq + I mata (kill) todos los procesos (excepto init).
Alt + SysRq + S sincroniza los discos.
Alt + SysRq + U remonta todos los sistemas de ficheros en modo lectura.
Alt + SysRq + B reinicia la máquina.

También podríamos intentar matar todos los procesos excepto init para ver si así se recupera el sistema, antes siempre es aconsejable sincronizar los discos. Una de las opciones que mas me llamó la atención y que nos puede servir fue la de hacer un Network Crash, ésto te permite hacer un volcado del kernel por red hacia otro servidor. Los pasos para preparar ésto son bastante sencillos, básicamente es hacer un intercambio de claves y modificar la configuración del sysconfig como podemos ver en esta guía de Novell. Una vez preparada esta opción, cuando el sistema se quede colgado sólo tendríamos que ejecutar Alt + SysRq + C y estudiar los resultados.

De como me convertí en geek: El pingüino

Junio 13, 2007

Guate Tux
Primera parte: De como me convertí en Geek: Mi primer computadora
Segunda parte: De como me convertí en Geek: La pubertad informática

Edeleon dice:

Luego la universidad, el encuentro con lo verdadero, con las tripas de las computadoras, conocer su funcionamiento hasta límites que nunca pensé llegar, eso de la electrónica me estaba gustando, las clases con Baesa a pesar de ser duras se hacían amenas pensando en los años que habia costado llegar a construir computadoras como las de nuestros tiempos. Afortunadamente se apareció el pingüino en mi camino y pude abrir los ojos a que existían más cosas aparte del Windows, ya había tenido algun contacto con algun Solaris y también con una especie de Linux ruso que usaban en Cablenet, pero no me había animado a adentrarme demasiado. Así empecé mis primeros pasos con Linux, la dura y larga transición hacia el pingüino, recuerdo que en los primeros años pruebas tantas distribuciones hasta que te vas acostumbrando a la que se te hace mas cómoda para trabajar, mi decisión final fue por Red Hat, me parecía muy estable, muy ordenada la forma de organizar el filesystem y muy cómodo el sistema de paquetes. Reconozco que usar la consola para administrar un Linux es una de las cosas que más me gustan, creo que si existieran herramientas gráficas para las tareas de administración siempre me voy a inclinar por usar la consola.

Y gracias a que me aficioné a Linux puedo decir que por eso estoy en España, ya que un día decidí que era necesario para mi carrera profesional tener una certificación de Linux, y opté por venir a España a sacarme el Examen de RHCE, el cuál en ese entonces se me hizo muy difícil, pero fue muy gratificante para mi que me dijeran que habia sido el único en España en ese momento que habia logrado ganar el examen sin necesidad de tomar el curso intensivo. Y aqui estoy ahora con mi MacBook para escritorio personal y administrando servidores Linux que siempre serán mi primera opcion como servidores de producción.


La respuesta de JCab:

Pensaba estudiar arqueología, creo que tenía muy idealizada esa profesión, pero alguien me convenció de que el campo, la paciencia y dormir al aire libre no iban a ser lo mío así que terminé estudiando Sistemas, la mejor elección de mi vida, aclaro que de mi vida profesional por si luego me reclama alguien. Al principio me gustaba pero faltaba algo, ese algo llegaría en la forma de un pingüino, era mas o menos a finales del 98 cuando comencé a trastear con linux, sobre todo como servidor, y a empaparme con la ideología detrás del software libre, a los pocos meses ya tenía claro que mi orientación profesional sería orientada a esa rama. Aunque al principio me costó y me cagué en el pingüino muchas veces, logré la transición con la ayuda de Don Vinix y la complicidad aún vigente de Edeleon que también se estaba convirtiendo y como el dice, creo que buena parte de esa afición al software libre fue la que hizo que nos decidiéramos a cruzar el charco. Ahora diría que desde hace unos cuatro años el pingüino está presente tanto en la vida laboral como la personal, utilizo Windows sólo para jugar Fifa y GTA, todo lo demás lo hago con linux (Ubuntu o Debian) y recientemente con Mac OS X pero esa es otra historia.

Al igual que Edeleon he ido probando varias distribuciones de linux pero a diferencia de él, Redhat no terminó de convencerme y al final decanté por Debian para servidores y Ubuntu para Desktop en el trabajo. En la casa hice el cambio hace un año al mundo de la manzana con un Macbook, otra buena decisión por cierto. Me encanta el haber tomado la decisión de seguir el pingüino y la manzana, seguramente alcanzaría la felicidad completa si mis conocidos también siguieran ese camino y no me estuvieran pidiendo de favor arreglarles su windows.

De como me convertí en geek: La Pubertad Informática

Junio 1, 2007

Geek 2

Primera parte: De como me convertí en Geek: Mi primer computadora

Edeleon dice:

Luego el gran cambio al 386 y monitor monocromatico con el Windows 3.1 y el ratón, gran invento, donde los haya, el salto abismal de los juegos con el Principe de Persia y el Solitario. Recuerdo intercambiar piezas del ordenador con los compañeros de colegio de los que iban actualizando sus compus con más RAM y deshaciendose de sus memorias por módicos precios. Quién no recuerda emocionado corriendo a casa para instalar el Windows 95 pirata que algún amigo te había dejado. El día que cambié a monitor de colores mi vida cambio por completo, que iluso y que inocente.

Las cosas avanzaban a pasos agigantados, poco a poco me fuí convirtiendo en un adicto a este invento, y gracias a Donis, que en su día me vendió su recien jubilado módem de 9600bps, porque gracias a eso tuve mi primer acercamiento a Internet, a las páginas que tardaban 10 minutos en cargar y a las largas regañadas que me daban mis padres por las altas cuentas de teléfono. Las horas que pasabamos jugando a Quake y Duke Nukem por modem no tenían precio. Esas largas e incontables horas frente al monitor esperando ver las imágenes de Sandra Bullock que en ese entonces estrenaba Speed, son las que marcaron mi etapa de la pubertad.


La respuesta de JCab:

Lamentablemente la HP-150 no duró mucho tiempo y la garantía no sirvió para nada así que mi juguete favorito quedó en el olvido un tiempo empezando por el hecho de que a finales de los ochenta y principios de los noventa eso era un lujo innecesario que se sustituía fácilmente por una máquina de escribir. Por suerte no pasó mucho tiempo hasta que en el colegio llevaron unas cuantas máquinas y conocí mi primer lenguaje de programación: Logo. Fue obsesión a primera vista, varios recreos me los pasé haciendo mover a la tortuguita de Logo, con un par de amigos pasamos de competir para ver quien hacía la mejor animación usando páginas de cuadernos a hacerlas en Logo.

Fue faltando dos años para graduarme de bachiller cuando apareció una 386 en la casa que se convirtió en la mimada de mi papá y mía (el para trabajar y yo para trastear), a pesar de que tenía muy poca memoria y cada programa tardaba años en cargar sobre todo uno que nos gustaba a los dos de ajedrez en donde al hacer una jugada la pieza cobraba vida, caminaba y luchaba con la pieza que se iba a comer, lo malo es que cada vez que la pieza cobraba vida podía ir a bañarme y a cenar y al volver todavía no había llegado a su destino. A diferencia de Edeleon, en mi epoca de colegial internet no había aparecido en mi camino ni los juegos de mayor nivel, esos llegarían a finales del 94 cuando en la computadora de un amigo vi algo que me dejó papo: Doom.

De como me convertí en Geek: Mi primer computadora

Mayo 23, 2007

Mi primera computadora

edeleon dice:
Recuerdo mi primer computadora (esta vez sere fiel al lenguaje chapín), cerca de finales de los 80’s, reconozco que entre un poco tarde a este mundillo, pero dadas las circunstancias de un país del tercer mundo, creo que fue el momento justo. Ese día mi padre llego emocionado contandonos que iba a llevar una computadora nueva a casa y que teníamos la posibilidad de escoger el color del monitor verde o ambar, que eran los dos únicos disponibles para pantallas monocromáticas, en ese momento, sin dudarlo, escogí el color ambar. Era un flamante 80286 con 2MB de memoria RAM, recuerdo que tenía instalado el MS-DOS, el Professional Write, Quattro y Basic, su respectiva disquetera de 5 1/4″, la torre gigantesca de color crema que pesaba una tonelada, ese día recuerdo que no dormí simplemente haciendo dir, cd, md, era lo único que conocia por ese entonces.

Recuerdo las largas horas de batallas con mi hermano luchando con el juego de los monos de Basic, los primeros virus de la mano del Mandy.exe que eran unas chicas en pelotas de muy baja calidad y ciclos de 1 segundo, que a estas alturas me pregunto como habrá podido llegar hasta mis manos. Luego la cosa fue cobrando sentido y ya usaba la compu para hacer mis tareas del colegio, para luego imprimirlas en mi impresora Epson de puntos de carro ancho, que hacia más ruido que la lavadora. La primera vez que abrí la compu con la curiosidad de saber que iba por dentro, pero es esa curiosidad la que me sirvió para encontar mi vocación, así como alguno habra encontrado la suya con el juego de médico que le regalaron sus padres y haciendo prácticas con las vecinitas.


La respuesta de JCab:
En mi caso la computación llegó entre 1986 y 1987 de la mano de Hewlett Packard. Mi papá le compró a unos amigos una HP-150, ahora que la veo me parece obsoleta pero en ese momento pensé que era el aparato mas moderno de la historia sobre todo porque ese modelo venía con una pantalla “táctil” (en realidad la pantalla estaba rodeada de infrarojos que detectaban el sitio donde pulsábamos) y los caracteres eran verdes. Mi papá me enseñó un programa para dibujar con ayuda de la pantalla táctil y ya me apropié del aparato, recuerdo que en ese momento despertó mi pasión por el mundo de la informática.

Pasaba horas sentado frente a la pantalla verde, sobre todo cuando complementamos el equipo con una impresora de matriz que ocupaba medio cuarto. Allí empecé a conocer y enviciarme con programas como Banner Manía, Printmaster y mi compañero de trabajos el Professional Write (nunca me gustó Word Perfect).

Diagramando redes y arquitecturas de sistemas

Abril 17, 2007

Diagrama Hace unos días en el trabajo me pidieron que propusiera una arquitectura de sistemas para un proyecto. La descripción e idea general del mismo no supone mayor complicación pero lo que siempre me ha costado es plasmar esa idea en un diagrama. La última vez que había representado el diagrama de una red aún no había radicalizado mi postura con respecto al uso que debe darse a Windows (sólo para juegos) y utilicé Microsoft Visio que es bastante bueno pero esta vez me negué a esa opción así que opté por buscar alguna aplicación que me ayudara a realizar esta tarea en Linux.

Existen varias aplicaciones que pueden utilizarse para diagramar redes, al final probé con dos de ellas, Dia y Xfig los cuales instalé directamente de los repositorios de Ubuntu. Ambas aplicaciones son buenas y sacan la tarea pudiendo incluso exportar el diagrama en varios formatos así que se las recomiendo aunque espero que continúen su desarrollo ya que les falta usabilidad. En LinuxDevCenter.com encontré una reseña comparativa de las principales aplicaciones para diagramar redes bastante útil.

Ahora que ya contaba con las herramientas no me convencían los iconos que traían para representar ciertas partes de la arquitectura. Buscando en internet me encontré con el problema de que no existe un estándar sobre como representar ciertos elementos de un diagrama de red, la única iniciativa la ha tenido Cisco que ha puesto a disposición de todos una serie de iconos que podemos descargar de su website y utilizar libremente y aunque me parece a mi que esconden un interés de identificación de marca por parte de Cisco pues me vinieron muy bien y fueron los que utilicé.

Por último me encontré por casualidad con un servicio llamado Rate My Network Diagram, éste es un espacio en el que podemos subir nuestro diagrama de red y los demás usuarios te dan una puntuación que va de 0 a 10 puntos, dentro de los diagramas que han subido hay desde redes multinacionales hasta redes caseras. Bastante original la idea así que ya veré si me animo y subo el diagrama que hice para ver qué piensa la comunidad.

Tip: Borrando archivos antiguos en Linux con find

Marzo 4, 2007

ConsolaHace poco tuve que borrar los archivos que tuvieran mas de 40 días de antiguedad en un servidor linux. Esto se puede hacer fácilmente con el comando find, en una sola línea como nos gusta a algunos, sólo hay que ejecutar lo siguiente en la consola:

/usr/bin/find < DIRECTORIO > -mtime +< NUMERO_DE_DIAS > -exec rm -f {} \;

Sólo tenemos que sustituir los parámetros < DIRECTORIO > y < NUMERO_DE_DIAS >. Adicionalmente podríamos agregar la opción -maxdepth < nivel > en caso de que el directorio tuviera subdirectorios, con < nivel > le indicamos cuanto queremos que profundice en ellos, por ejemplo si no queremos entrar en subdirectorios < nivel > sería 1.

Algunos ejemplos de su uso:

/usr/bin/find /home/jcab/tutoriales/ -maxdepth 1 -mtime +100 -exec rm -f {} \;

Si quiero medir el tiempo en minutos en lugar de días utilizo -mmin en lugar de -mtime:

/usr/bin/find /tmp/ -maxdepth 2 -mmin +45 -exec rm -f {} \;