¿Quién no se manda una metida de pata cada tanto? Yo tengo varias de diversa índole en prácticamente todos los aspectos de la vida. Estas son las mejores que puedo recordar que me hayan pasado en Linux tipeando comandos en la consola:

haha_nelson

Ejecutar comandos en el host equivocado:

Ejecutar un comando creyendo estar en la consola local cuando en realidad se trataba de una jaula chroot o un host remoto:

# reboot

# halt

# killall (nombre de proceso importante)

De a poco se me ha hecho costumbre cambiarle el nombre al shell ni bien inicio sesión remotamente. Si me logueo en un Host cuyo nombre es pepito, renombro el prompt para que lo refleje:

# export PS1=”[pepito] $PS1”

Cambiar el puerto del servidor SSH

Eso, por muy boludo que suene ya me pasó unas dos o tres veces cambiar el puerto en el que escucha el servidor SSH y olvidarme de modificar el reenvío de puertos en el router que hace NAT o en el Firewall con lo que me encierro solo del lado de afuera y no puedo volver a conectarme remotamente:

# echo “Port 12345” >> /etc/ssh/sshd_config && /etc/init.d/sshd restart

De ahí viene la costumbre que tengo de instalar una VPN que traspase el firewall en cuanto servidor tengo bajo mi control.

Bajar la interface WAN en lugar de la LAN

Estando logueado por SSH, en lugar de bajar eth1 que era la interface LAN, bajé eth0 que era la WAN. El servidor se queda sin internet, yo me quedo fuera sin conexión. El servidor está a 70 kilómetros de distancia y es domingo a la siesta, nada mas que hacer hasta el lunes a la mañana en que alguien físicamente pueda solucionar el “problemita” reinciando el servidor o levantando eth0 nuevamente.

ifconfig eth0 down

Desde entonces tengo la costumbre de usar variables para asignarle nombres a las interfaces de red y usar la variable en lugar del nombre en el script:

export wan=eth0

Compilar mal el kernel

En un servidor remoto, compilar mal el kernel y reiniciar para probarlo resultando en un kernel panic o en quedarme sin conectividad en el servidor imposibilitando la reconexión remota por SSH para verificar los cambios.

make –j4 && make modules_install && cp arch/i386/boot/bzImage /boot/kernel && reboot

Desde entonces, si necesito reiniciar un host linux que no se si va a volver a la vida después del reboot uso una combinación de este watchdog en caso de pérdida de conectividad con este sistema de reinicio automático en caso de kernel panic y el método fallback que provee grubya voy a escribir al respecto alguna vez– para asegurarme de que si algo me salió mal, el equipo se reinicie solo volviendo a usar la configuración anterior en donde todo funcionaba.

Echando a perder se aprende, ¿Vieron?

Típico caso: Recuperación de datos, el medio ha sido sobreescrito con información reciente, con lo que no todos los archivos recuperables a bajo nivel salen sanos.

Lo que haría todo el mundo es abrir archivo por archivo de a uno verificando cuales estan sanos y cuales rotos lo que por resumirlo de alguna manera que englobe totalmente el concepto que quiero transmitir: Es un reverendísimo dolor de bolas.

Acción y efecto de probar todos los archivos recuperados uno por uno para detectar de forma manual cuales están corruptos

Acción y efecto de probar todos los archivos recuperados uno por uno para detectar de forma manual cuales están corruptos

Buscar de entre los miles de archivos que nos puedan interesar cuales salieron sanos y cuales se corrompieron de manera manual como hice toda la vida es la parte que mas tiempo y recursos (mentales) consume. Por suerte alguien en los foros de Gentoofuente de eterna sabiduría informática si las hay– tuvo la misma inquietud pero además fué un poco mas inteligente que yo, quería hacerlo automáticamente. Ya de entrada venía bien encaminado cuando dijo:

Hola,

Tengo un respaldo de archivos antiguos de mi trabajo (principalmente MSOffice), en algún momento varios archivos se corrompieron, por lo que hay archivos que se pueden abrir y otros que no hay caso.

Quiero eliminar los archivos corruptos.

Para diferenciarlos de los buenos se me ocurrió utilizar el comando «file»

Ahí fué que se me encendió la lamparita y vengo utilizando este método automático desde entonces exitosamente. Es que el comando «file«, puede diferenciar a la perfección un tipo de archivo de otro con lo que cualquier archivo que estuviera corrupto, ya sea una imagen, un video, música o un documento de office en lugar de ser identificado como corresponde, simplemente figurará como de tipo «data«.

Tan sencillo como eso, eliminar del directorio que contiene los archivos recuperados, todos aquellos que figuren como de tipo «data«, a lo que Stolz, moderador del foro y mago programador de Bash respondió con este sencillo script que navega subdirectorios recursivamente eliminando todos los archivos que sean de tipo «data»:

find . -type f | while read linea; do
  tipo=`file -b "$linea"`
  if [[ $tipo == "data" ]];then
    rm  "$linea"
  fi
done

Paso a paso:

Se crea un archivo dentro de /usr/bin para que contenga al script, lo llamaremos «borrador_de_archivos_corruptos«:

nano /usr/bin/borrador_de_archivos_corruptos

Se copia el contenido del script y se pega dentro del archivo que estamos editando con nano (o el que sea tu editor de texto de cabecera).

Se sale guardando los cambios.

Se convierte el archivo en ejecutable:

chmod +x /usr/bin/borrador_de_archivos_corruptos

Y ya estça listo para usar.

IMPORTANTE: Ejecutar borrador_de_archivos_corruptos únicamente dentro de la carpeta que contiene la información salvada del proceso de recuperación de datos. Ejecutar el script fuera de la misma te va a borrar archivos que son de tipo «data» por que tienen que serlo, te va a hacer mierda todo lo que encuentre a su paso, para que se entienda.

Ya tenés otro motivo mas para tener un Linux siempre a mano.

Simplemente por que Linux administra de forma mas eficiente los recursos disponibles, es innegable que cualquier Linux va mucho mas rápido que Windows. Esto se nota aún mas en las PC mas bien viejitas en donde instalar una versión reciente de Windows es impensable y sin embargo todavía puede ser de utilidad si se le instala una versión reciente de Linux.

Por este motivo es que cada vez mas se ve por todos lados que no solo en PC de escritorio se usa Linux, si no también en teléfonos celulares, routers y equipos que proveen conectividad, etc. Donde los recursos son limitados, Linux se luce, los administra mejor, carga todo mas rápido haciendo uso de menor cantidad de memoria RAM y proveyendo de esquemas de seguridad mejorados.

Es exactamente por el mismo motivo por el que en servidores en producción donde la carga de transacciones es altísima, siempre se prefiere Linux.

Este artículo viene a contrarestar todo lo anterior.

Voy a explicar a continuación como hacer que Windows sea tan rápido como Linux:

  1. Mejor hardware: Tu PC con Windows 7 y 512Mb de ram nunca va a poder ser tan rápida como una con Linux y esa misma cantidad de memoria disponible. Para que sea mas rápida, agrega mas memoria RAM, 1Gb mínimo, recomendado 2Gb o mas.
  2. Mejor hardware: ¿Un microprocesador ahora que vienen de 2, 3, 4, 6 y 8 cores? ¡No se hable mas!: Para que tu PC con Windows sea mas rápida, agregale mas microprocesadores, como mínimo un Quad Core, de ahí para arriba. ¡Superá eso, Linux!
  3. Defragmenta tu disco no menos de tres veces por día: Una en ayunas, una a medio día antes de cada comida y una a la noche, antes de irte a dormir. Cualquier analista de sistemas te podrá confirmar esta afirmación. Un disco desfragmentado siempre corre mejor que uno al que nunca se le hubiera ordenado el sistema de archivos.
  4. Deshabilita restaurar sistema: Que tu sistema operativo se ponga cada tanto a hacer copias de seguridad en caso de que algo se rompa sin que se lo pidan no hace mas que consumir recursos. Como nada se va a romper, -o no debería romperse al menos– desactivá esta función. Estarás siempre aprovechando el 100% de tiempo de microprocesador y desocupando una buena tajada del disco rígido.
  5. Desactiva el antivirus: Eso de tener uno o mas programas constantemente vigilando todas las operaciónes de entrada y salida sobre el sistema de archivos y los procesos y encima controlando ciertos sectores «criticos» del registro de Windows no es mas que una pérdida de tiempo de procesamiento, de memoria RAM y de espacio en disco (además de sumar mas archivos para defragmentar diariamente). Para que tu Windows realmente le pase el trapo a Linux, nada de antivirus ni mariconadas de esas, al fin y al cabo, las PC no necesitan antivirus.
  6. Desactiva las actualizaciones automáticas: estarás liberando al microprocesador de la tarea de controlar las versiones de los archivos instalados, al sistema de archivos del mismo tedio y a la memoria RAM durante el proceso de actualización. Además, de esa forma es mas improbable recibir una de esas actualizaciones que te entotoran «de prepo», –que de seguridad no tienen nada– que avisan que podrías ser víctima de una falsificación de software. Que puede que tu copia de Windows no sea original.
  7. Desactiva el firewall de Windows y cualquier otro firewall de terceros que tuvieras en ejecución: Nunca vas a poder competirle a Linux con tanta parafernalia consumiendo tus preciados recursos de hardware. Nada de verificar escaneos de puertos o bloquear puertos privilegiados, muchísimo menos se te ocurra habilitar filtrado de tráfico en tiempo real, necesitas toda la potencia disponible exclusivamente para el sistema operativo.
  8. Desactiva todos los programas que se cargan durante el arranque, aun que sean esenciales para el funcionamiento: Si, que la botonera de la impresora no funciona si no tiene el ícono en el system tray, o que la cámara digital no descarga automáticamente las fotos al conectarla si no está el proceso en ejecución consumiendo memoria, que el detector de conectores del panel frontal no pone en funcionamiento los auriculares si no está el audio-deck al lado del reloj consumiendo 17Mb de ram pero no hay nada que hacerle. ¿Querés competir contra Linux? Entonces desactivalos a todos, si los necesitás los ejecutás a mano antes de usarlos y listo.
  9. Desactiva todos los servicios que no usás permanentemente: Bluetooth, Audio de Windows –lo activás si lo vas a usar, casi nadie usa audio el 100% del tiempo-, configuración inalámbrica rápida –total hacés la configuración a mano desde las propiedades del adaptador de red-, conexiones de red (ver punto 10), inicio de sesión secundario para que ningún proceso pueda pasarte por arriba y escalar privilegios sin tu consentimiento, plug and play –si no vas a conectar ningún pendrive ni agregar mas hardware, ¿para que lo querés?– registro del sistema –¿Para que registrar todo si nunca revisás el log?-, etc, etc.
  10. Por último y el mas importante de todos: Desconecta tu PC de internet.

Siguiendo esta guía al pié de la letra, tu PC va a ser mucho mas rápida que una con Linux e igual de segura, sin internet, eso es verdad, pero sin antivirus, sin firewall y sin los parches para corregir vulnerabilidades, yo en tu lugar no me arriesgaría a conectarme.

Tu equipo no será el mas funcional de todos, pero ¡Es rapidísimo!

FreeBSD Vs Windows: ¿Alguna duda?

FreeBSD Vs Windows: ¿Alguna duda?

A ver que elegís: ¿Linux con todo funcionando, rápido y sin problemas o Windows y mi guía de optimización?

Esta va para todos los que dicen que en Linux todo es complicado de hacer y poco funcional… Todo no se puede, ¿No?

Mas que fuente, inspiración: How to make Windows faster tan Linux.


Si tu disco rígido se ve como este, ni te gastes en seguir leyendo por que no hace falta: ¡Es viejísimo! (Y no, no se pueden recuperar los correos electrónicos que tenías guardados ahí antes del holocausto nuclear)

Si tu disco rígido se ve como este, ni te gastes en seguir leyendo por que no hace falta: ¡Es viejísimo! (Y no, no se pueden recuperar los correos electrónicos que tenías guardados ahí antes del holocausto nuclear).

Este es mas viejo que la escarapela pero se me ocurrió que quizás no todos estén y/o estéan al corriente:

El sistema de automonitoreo y reporte de todos los discos rígidos, S.M.A.R.T. por las siglas en inglés de Self Monitoring And Reporting Tool lleva la cuenta de cuantas horas lleva encendido tu disco rígido. No tengo ni la mas putañera idea de como verificar esto en windows ni me interesa aprender tampoco pero en linux, tirando de la herramienta smartmontools, he aquí los resultados:

Para /dev/sda:

# smartctl -s on /dev/sda && smartctl -a /dev/sda | grep Power_On_Hours

9 Power_On_Hours          0x0012   093   093   001    Old_age   Always       –       4835

Mi disco rígido identificado como /dev/sda lleva un total de 4835 horas funcionando. Si hubieran sido de corrido, haría un total de casi 202 días sin apagarse nunca… Casi un año.

Mi /dev/sdb, por otro lado, Tiene mas agachadas que japonés con visitas:

# smartctl -s on /dev/sdb && smartctl -a /dev/sdb | grep Power_On_Hours

9 Power_On_Hours          0x0012   099   099   000    Old_age   Always       –       9271

Suma el solito 9271 horas, que si fueran todas de corrido harían un total de casi 387 días. Mas de un año.

¿Cuantas veces se apagó y encendió la PC en donde estuvo conectado este disco rígido?

# smartctl -s on /dev/sdb && smartctl -a /dev/sdb | grep Power_Cycle_Count

12 Power_Cycle_Count       0x0032   090   090   008    Old_age   Always       –       7165

Miren si habrá aguantado cascotazos el botón de encendido del gabinete: 7165 veces lo he presionado como mínimo y todavía sigue ahí como si nada. Ni vencido el resorte, ni despintado el plástico, nada… Gabinetes para PC eran los de antes.