26 mayo 2006

Monitorización del estado del disco duro

Existe una utilidad sencilla pero potente que nos permite, bien utilizada, prever un fallo grave del disco duro que nos llevaría a una pérdida total de los datos contenidos.

Esta utilidad hace uso de una tecnología integrada en todos los discos duros modernos, llamada S.M.A.R.T..

La utilidad se llama SmartCtl y puede ser descargada de:

http://smartmontools.sourceforge.net/
http://sourceforge.net/project/showfiles.php?group_id=64297

En realidad se trata de un conjunto de utilidades pero la que nos interesa a nosotros se llama SMARTCtl.exe.

Este programa dispone de muchos parámetros que nos proporcionan multitud de datos que tal vez a alguno le digan algo. En mi opinión creo que los más importantes, o al menos útiles e inteligibles, se pueden extraer con un solo parámetro (-A). Desde una consola, situándonos donde hayamos copiado el ejecutable, escribiríamos lo siguiente:

Smartctl.exe –A /dev/hda

Es importante respetar la ‘A’ mayúscula porque existe otro parámetro en minúscula que proporciona más información de la que nos interesa. Este primer parámetro le indica al programa que sólo nos interesan los atributos que el fabricante del disco ha considerado conveniente controlar. El segundo parámetro le indica al programa a qué disco duro queremos acceder. Antes de describir brevemente la razón de esa nomenclatura es necesario indicar que hay varios tipos de discos duros, clasificados según su tipo de conexión. Existen los discos duros conectados al canal IDE, el mismo que suelen utilizar lectores/grabadores internos de CD-ROM. Existen también los discos duros SCSI; este tipo de canal proporciona una estabilidad en la transmisión superior a la del canal IDE pero también es más caro y es algo menos común. Por último existen los dispositivos S-ATA; este último tipo es más reciente pero ya está muy extendido. Para los discos duros conectados a los canales IDE o S-ATA la nomenclatura para la selección del dispositivo es similar a la del ejemplo /dev/hda. La letra a del final indica que se trata del primer dispositivo del canal. Esa última letra puede ser cualquiera de las del alfabeto inrternacional (abcdefghijklmnopqrstuvwxyz). Para los discos duros de tipo SCSI, la nomenclatura es diferente pero puesto que se trata de algo mucho menos frecuente, no hablaremos de ellos. Es importante resaltar que no es lo mismo un disco duro que una partición. Una partición es una división lógica realizada en el interior de un disco duro. El nombre del dispositivo /dev/hda hace referencia al disco duro físico, sin tener en cuenta que pueda tener o no particiones creadas. En caso de tener más de un disco duro, habrá que ejecutar el comando mencionado sobre cada uno de ellos de manera independiente.

Otro detalle que debe tenerse en cuenta es que cada fabricante considera unos parámetros como críticos para los discos duros que fabrica. Es decir, entre dos fabricantes diferentes, los datos resultantes del comando podrían diferir totalmente. Cada fabricante puede mostrar hasta un máximo de 30 atributos para su disco. En el ejemplo (ver la imagen al pie del texto) se ve que en este caso el fabricante se ha conformado con 15.

Pasamos a describir ahora los parámetros que en mi opinión pueden ser críticos, en general, a pesar de que para el fabricante podrían no serlo aunque los tengan en cuenta.

Comienzo describiendo los campos interesantes de la tabla resultante (ver la imagen al pie del texto):

  • ID#: identificador del atributo. Este identificador suele ser común entre los fabricantes de discos, es decir, si dos fabricantes lo utilizan, lo harán con el mismo significado.
  • Atribute name: nombre del atributo. Proporciona una breve (y casi ininteligible) descripción del atributo, esto es, su significado. Salvo contadas excepciones a un usuario normal no le dicen nada útil.
  • Value, Worst, Thresh(old): estos campos contendrán el valor actual, el peor detectado y el umbral, si el fabricante lo considerado necesario, para cada uno de los atributos. Los valores de los tres campos estarán siempre comprendidos entre 0 y 255 (en realidad 253). En el caso de que el fabricante hay considerado necesario un umbral (Threshold) los valores de Value y Worst deberán estar siempre por encima del umbral. En caso de que el valor de Value estuviese por debajo del valor del umbral, el fabricante avisa de que es MUY RECOMENDABLE cambiar el disco, o al menos hacer una copia de seguridad, porque existe una alta probabilidad de un fallo inminente. Los atributos para los que el fabricante no haya indicado un umbral, se usan para ir monitorizando el deterioro, por edad de sus valores.
  • Type: Los atributos se clasifican en Pre-fail y Old_age. Los primeros son lo que el fabricante considera críticos. Son lo que deben vigilarse más porque pueden avisar antes de que ocurra un fallo grave en el disco. Los segundos, el fabricante los considera importantes pero no críticos. Simplemente van reflejando el deterioro del disco por la edad y el uso.
  • Raw_value: Este campo muestra un valor mucho más inteligible para el humano. En caso más representativo es el de la temperatura (ID# 194). El ejemplo de este artículo es cuando menos curioso pero no es habitual. Un valor binario de 57 (valor entre 0 y 255) no siginifica nada pero si se lee en el campo raw_value se puede ver el valor decimal asociado. En este caso, por casualidad es también 57, medido en grados centígrados.

A continuación paso a indicar los atributos que en mi opinión podría ser interesante monitorizar:

  • ID# 3: Se podría definir como el tiempo que tarda el disco duro, en milisegundos, en ponerse en funcionamiento cuando se enciende el ordenador. En el caso del ejemplo, el valor es considerado como crítico por el fabricante porque le ha asignado un umbral. En caso de que el fabricante no le hubiese asignado un umbral, si se lee el valor del campo Raw_value se podría uno hacer una idea de si hay problemas. Este valor no debe ser ni muy alto ni muy bajo pero es más problemático cuanto más bajo sea ya que cuanto más bajo sea el valor indica que el motor que hace girar los platos está realizando un esfuerzo para el cual no está preparado y podría producirse un fallo mecánico grave. Por lo que he podido comprobar con algunos discos, un valor por encima de 10000 parece ser correcto.
  • ID# 5: Se podría definir como el número de sectores defectuosos que se han localizado en la superficie del disco. Un disco duro siempre se reserva cierta cantidad de espacio para cubrir posibles bajas en sectores del disco. Pero ese espacio es limitado y por tanto si hay más sectores defectuosos que espacio reservado para reemplazarlos, el disco empezará a dar problemas de funcionamiento (errores de lectura y escritura). El valor del campo Raw_value indica el número de sectores defectuosos “corregidos”.
  • ID# 9: Indica el número de horas que lleva el funcionamiento el disco. El número máximo estimado de horas que puede aguantar sin problemas un disco lo proporciona el fabricante. Consultando las hojas de características del disco podría revisarse si nos estamos acercando al límite estimado por el fabricante.
  • ID# 10: Este atributo indica si se ha producido algún fallo durante la puesta en funcionamiento del disco. Si se producen demasiados fallos (ver valor de Raw_value) indica un fallo mecánico que nos podría dejar el disco inutilizable.
  • ID# 194: Este atributo muestra, en Raw_value, la temperatura actual del disco. A pesar de no ser considerado crítico por ningún fabricante, el valor de este atributo debe monitorizarse. Si la temperatura del disco es demasiado alta pueden producirse fallos tanto en la superficie de los platos como en el subsistema mecánico del disco, dejándolo inservible. Una temperatuta demasiado alta puede indicar un defecto en la ventilación del ordenador, podría haberse estropeado alguno de los ventiladores o la renovación de aire no es efectiva, por ejemplo, tener encerrado el ordenador en un armario sin toma de aire.

Los otros parámetros también son importantes pero su significado es algo más difuso y lejos de la intención introductoria de este artículo.

Simplemente quiero recordar que debe verificarse que aquellos parámetros para los que haya un umbral, los valores del campo Value deben estar por encima del valor del umbral (campo Thresh). SI ESTAN POR DEBAJO DEL UMBRAL ES MUY CONVENIENTE HACER UNA COPIA DE LOS DATOS IMPORTANTES DEL DISCO Y PROCEDER A LA SUSTITUCIÓN DEL MISMO.

22 marzo 2006

BUSCANDO LA AGUJA EN EL PCAJAR

¡Te urge! ¡Te urge!... 'Maruja, la Cachonda'... Mmmmmnnnn, síp... Tú sabes que ese término se encuentra en alguna o algunas de las decenas de miles de líneas de alguno o algunos de las decenas de miles de archivos que tienes en tu máquina. Y también sabes que situaciones como esta se repiten y se repetirán casi a diario en tus haceres computeses.

Si estás trabajando en un sistema UNIX o similar, entonces no hay duda: echarás mano del amigo 'grep' y lo encontrarás ipso facto.

Si has trabajado en un sistema UNIX o similar pero ahora te encuentras en un Windows, seguramente añorarás al amigo 'grep' y te instalarás el 'wingrep'.

Si has trabajado en un sistema UNIX o similar pero ahora te encuentras en un Windows y ya estás hasta las narices de instalarte el wingrep (y dos docenas de utilidades similares) allá donde vayas, pasarás de todo y te apañarás con lo que tengas.

Si nunca has salido de Windows, no te comerás la cabeza ni harás nervios y te apañarás con lo que tengas.

Sí, bien, vale, pero... ¿y qué es lo que tenemos?

Pues perfectamente integrada en el fan-tás-ti-co explorador de windows tenemos una fan-tás-ti-ca utilidad de búsqueda de archivos que seguro seguro seguro tú ya conoces: con su cajita de texto para escribir, con sus posibilidades para filtrar por tipos, fechas, contenidos... En fin, un auténtico lujo al alcance de cualquier usuario de windows. Eso sí, tiene alguna pequeñíííííísima peguita, de las que voy a citar dos.

La primera es que esta cosa busca los archivos que cumplan con las condiciones especificadas: los-ar-chi-vos. Así que cuando lo que estás buscando son contenidos, primero tienes que buscar los archivos que los contienen para, después, examinarlos uno a uno en busca de los contenidos. No, este modus operandi no es la quinta esencia de la productividad, precisamente. Definitivamente, no es lo que yo quiero mientras estoy trabajando.

La segunda es que esta cosa busca los archivos que cumplan con las condiciones especificadas: los-bus-ca. Sí, igual crees que estoy de guasa, pero no. Lo que sí tiene guasa es cuando esta cosa los busca... ¡y no los encuentra! Hace poco se me pusieron los ojos como platos al comprobar que no me encontraba unos ficheros con extensión php y unos contenidos que yo sabía que sí existían. Pero no, para él no existían.

¡Vaya marcianada! - me dije.
Oye, ¿a tí también te pasa? - le pregunté a un compi.
Pues sí, oyes, a mí también me pasa - me dijo.
Oye, ¿a tí también te pasa? - le pregunté a un amiguete.
Pues sí, oyes, a mí también me pasa - me dijo.
Pues va a ser que pasa en todos los equispés - dije yo. Pero en 98 esto iba bien - añadí perplejo y apenado.


Así que, sin detenerme en más averiguaciones, pasé a apañarme con lo que tenía, o sea, a abrirme una consola de comandos y escribir:
findstr /i /n /s "maruja" *
/i para que no sea tiquismiquis con las mayúsculas y las minúsculas.
/n para que me diga el número de línea en que está la cadena que ando buscando, que siempre es de agradecer.
/s para que me busque también en las subcarpetas de la carpeta actual.
"maruja" para que busque la cadena "maruja" :)
* para que busque en todos los archivos

findstr es un comando muy apañao. Te recomiendo que le eches un vistazo. Por supuesto, tiene muchas otras aplicaciones (¡imaginación al poder!). Personalmente, creo que pasará bastante tiempo antes de que me vuelva a instalar el wingrep o de que me vuelva a fiar de la búsqueda del explorer, teniendo disponible a este eficaz y versátil amigüito.

20 febrero 2006

GOOGLE: ALGO MÁS QUE UNA CARA BONITA

¿Quién no ha necesitado alguna vez conocer a cuánto estaba el cambio de alguna divisa? ¿Quién no ha amasado una gran fortuna de la noche a la mañana gracias al sudor de su frente y se ha visto obligado a conocer las cotizaciones para realizar sus inversiones con talento? O, ¿quién no ha hecho un viaje al extranjero, fuera de la zona euro? O, ¿quién no ha comprado un libro en amazon y ha querido comparar los precios entre el amazon de los USA, el de UK y el alemán? ¿Quién...?

El primer instinto de casi cualquier googleliano que se encuentre en una tesitura semejante será, sin duda, resolver el problema siguiendo los siguientes sencillos pero efectivos pasos:

  1. Irse a Google.

  2. Buscar un sitio web donde consultar las cotizaciones.

  3. Pillar la calculadora.

  4. Convertir las cantidades.



Plas, plas, plas - aplausos en reconocimiento del esfuerzo realizado.
Ji, ji, ji - veladas risitas del listillo de turno que nos ha visto hacer el pinchaolivas a base de bien durante un buen rato.

Si lo que queríamos era saber a cuánto está la libra, nos podríamos haber ahorrado varios de los pasos anteriores preguntándole directamente a Google:
1 Pound in Euros
A lo que Google responderá algo así como:
1 British pound = 1.46086664 Euros

¿Y si quiero la del dólar? Pues le pregunto:
1 USD in Euros
A lo que Google responderá algo así como:
1 U.S. dollar = 0.839771582 Euros

Por supuesto, si lo que se quiere es convertir alguna cantidad, no hay que hacer el canelo usando luego la calculadora de windows, sino que le preguntaremos directamente a Google:
10.2 GBP in Euros
A lo que Google responderá algo así como:
10.2 British pounds = 14.9008398 Euros

A estas alturas, ya habrás notado que:

  • la cosita está muy bien cuando sabes cómo pedirle lo que quieres obtener (USD, GBP...).

  • la sintaxis es flexible y "humana".

  • Google es yanqui. De ahí el "in", del que no nos libraremos ni en google.es (al menos, a fecha de hoy).

  • el interfaz deja bastante que desear, y la documentación ¡no digamos!


Además, deberás tomar buena nota de la Poncius Pilatus Warranty bajo la cual los Sres. de Google te ofrecen este servicio. No obstante, una vez conocidas las limitaciones, la cosita está genial.

Porrrrque la cosita no acaba aquí, nope. Resulta que Google no es solo el magnífico buscador que todos conocemos, sino también una potente calculadora, que incluye la posibilidad de convertir entre distintas unidades (tb. monetarias) y sistemas, y siempre dispuesta a responder algunas "preguntas sencillas". Por ejemplo, puedes preguntarle la velocidad de la luz (speed of light, o simplemente c), el número de Avogadro (Avogadro's number) o un buen montón de constantes físicas. Puedes preguntarle la masa de los planetas anteponiendo "m_" al nombre del planeta (prueba m_Mars o directamente mass of Mars).

Sí, bien, vale, pero... ¿me ofrece algo la calculadora de Google que no tenga la calculadora de windows?
Respuesta: pozí.

Confieso que no he probado todas las operaciones que se pueden realizar con la calculadora de windows; pero todas las que he probado, pueden realizarse también con la de Google: desde un simple tanto por ciento (13% of 200), pasando por un típico factorial (100!), hasta un coseno hiperbólico (cosh(30)).

Y aun siendo verdad que el interfaz de Google es penoso y que necesitas saber "por ciencia infusa" cómo se escriben las cosas, una vez que hayas cogido práctica en su manejo será probablemente más ágil. Incluso podrás contar con algunos atajos para operaciones que con la de windows hay que hacer "a mano": prueba, por ejemplo, a escribir 100 choose 2 para hallar las combinaciones de 100 elementos tomados de dos en dos.

Por otra parte, en cuanto a conversiones una de ellas está a años-luz de la otra (adivina cual). Con la de windows puedes convertir entre cuatro sistemas numéricos: hexadecimal, decimal, octal y binario. Punto. Con la de Google puedes convertir entre estos cuatro (13 in binary), y hasta ¡a (o de) números romanos! ¿Cómo se escribe el año en el que estamos en números romanos? (2006 in roman)
Además puedes realizar conversiones entre unidades monetarias, como decíamos al principio, entre unidades de temperatura, entre unidades angulares (30 degrees in radians) y, en definitiva, realizar las más peregrinas conversiones (1 acre in sq km).

Y, por último, Google también supera la que personalmente considero que es una de las más patéticas de las carencias de la calculadora de windows: los números complejos.
Si en Google escribes:
(2 + i)*3 + 1
Obtendras un correctísimo:
((2 + i) * 3) + 1 = 7 + 3 i
Y como para Google la exponenciación compleja no tiene misterios, a los googlelianos de hoy en día ya no les costará tanto esfuerzo como les costaba a los matemáticos de otros tiempos comprobar la famosa ecuación de Euler: e**(i*pi) + 1

29 diciembre 2005

APAGA Y VÁMONOS

Imaginaos por un momento en la tienda, frente al vendedor de Micro$oft. Llega el momento de pagar. Entonces es cuando él te pregunta eso de:
¿Qué desea hacer ahora?

  • Pagar

  • Saldar su deuda

  • Abonar la cuenta


Y entonces es cuando tú te preguntas eso de:
¿Cuál ******* será la ******* diferencia?

Pues más o menos así es como te puedes sentir cuando, tras decidir juiciosamente "salir de güindous" y dar la orden correspondiente, el sistema te responde con un:
¿Qué desea que haga el equipo?

  • Cerrar sesión

  • Apagar

  • Reiniciar

  • Suspender

  • Hibernar


Así que, para evitarte la desazón de tener que elegir descartando opciones que no sabes muy bien qué significan, vamos a explicar brevemente qué hacen cada una de ellas.

Cerrar sesión es la que empleas en un equipo compartido por varios usuarios para cambiar de uno a otro. Ni el hardware ni el SO abandonan el reino de los vivos: sólo lo harán "tus programas".

Apagar es lo que su propio nombre indica: apaga tanto el SO como el hardware. ¿Cuál es la diferencia entre apagar de este modo y apagar dándole al botón o quitando el cable de la alimentación? Pues más o menos como entre tragar masticando o sin masticar: De los dos modos parece conseguirse el mismo resultado, pero el primero es más sano y te evitas los posibles problemas que te puedan aparecer con el segundo. Si te decides por el segundo por que te gustan los deportes de aventura o por que odias perder el tiempo saliendo controladamente del sistema asegúrate, al menos, de que el dueño o responsable del equipo (caso de no ser tú) no está armado o no se encuentra cerca o jamás podrá identificarte.

Reiniciar es un apagar seguido de un encender. ¡Qué te voy a contar yo a ti que tú no sepas ya del reiniciar! Es la madre de todas las curas en informática. ¿Qué hace el personal computés cuando algo no marcha bien? ¡Bingo! Reiniciando se apaga tanto el SO como el hardware y, a continuación, se vuelven a poner en marcha. Pero, ¿se apaga todo del todo del todo del todo? No, lo cierto es que no: las cositas no se apagan todas total e incondicionalmente. Pero, bueno, salvo casos muy muy muy especiales... pensaremos que sí.

Suspender es uno de esos apañetes modernos para eso de ahorrar energía: se apaga parte del hardware. Algo en concreto que queda encendido y bien encendido es la alimentación de la memoria RAM: allí es donde continúan tus datos, tan "en el aire" como lo estarían con el ordenador en su estado normal. Es decir, que güindous conserva toda su potencia de pérdida de TU trabajo cuando el ordenador entra en este estado.
En este estado se puede entrar de dos maneras: de modo manual (cuando tú lo ordenas) o de modo automático (cuando el sistema detecta que ha estado un cierto tiempo inactivo). Algunos rizan el rizo y llaman stand by a este estado cuando se activa de modo automático. Por lo que a mí respecta, stand by es suspender sin traducir; pero como estas cosas pueden configurarse en varios sitios, es posible que te encuentres ambos términos en una misma máquina.

Hibernar es el otro apañete para el ahorro de energía. En este caso, se apaga todo el hardware; peeeero antes el sistema hace un volcado de la RAM al disco duro, de tal modo que, cuando el sistema vuelva a la vida, todo estará como lo dejaste justito justito antes de comenzar la hibernación: se restaurarán todas tus aplicaciones al mismísimo estado en que se encontraban. ¿Sin pérdida de datos? Pues sí o, al menos, esa es la idea. Pero aquí es perentorio decir que nada te garantiza que todo tu hardware soporte la hibernación; es más: puede que tu ordenador no soporte la hibernación en absoluto. O puede que tu ordenador parezca haberse despertado completamente tras una hibernación pero que algunos de tus periféricos no lo hayan hecho, por ejemplo. Es decir, que yo no te recomiendo que hagas la primera prueba cuando tengas en memoria (sin guardar) esos datos que por nada del mundo quisieras perder.
De todos modos, si tu ordenador soporta bien la hibernación, este es un método fantástico para ahorrar energía cuando vayas a hacer una pausa larga: gastará menos que con la suspensión y ahorrarás tiempo al volver a la vida.