Centos, enlazar sh a dash, intento fallido

Tras investigar un poco sobre las diferentes shells, decidí cambiar la script shell por defecto de Centos por dash. Hay que aclarar que la script shell no es la shell de ningún usuario, sino la shell de los daemons. Solía ser sh en la mayoría de las distros, aunque ya no es así.

En Ubuntu desde la versión 6.06, en Debian desde Squeeze y en Fedora desde 17 (si no me equivoco) la script shell por defecto es dash (Debian Almquist shell). Dash es más pequeño y más rápido que bash, esto es bastante importante en el inicio del sistema. ¿Y por qué hablo de bash y no de sh? Pues porque en la mayoría de las distros sh es un link que apunta ya sea a bash u a otra cosa.

En la wiki de ubuntu explican el uso de dash de esta manera:

The boot speed improvements in Ubuntu 6.10 were often incorrectly attributed to Upstart, which is a fine platform for future development of the init system but in Ubuntu 6.10 was primarily running in System V compatibility mode with only small behavioural changes.

La mejora de la velocidad de inicio de Ubuntu 6.10 fue muchas veces atribuida de manera equivocada a Upstart, que es una buena plataforma para el desarrollo del sistema init, pero que en Ubuntu 6.10 estaba ejecutándose en modo de compatibilidad con Sys V con solo algunos cambios.

Vaya, vaya, vaya. Decidí probar dash como la script shell en Centos, Sigue leyendo

Anuncios

Instalando Fedora 18 a través de Fedora 17

Hace tiempo que quería probar Fedup, básicamente desde que comenzo el proyecto, pero nunca tuve el motivo de hacerlo. Ahora con eso de Semana Santa y Feria, he decidido sustituir mi sistema principal, actualmente un Centos 6.4, por Fedora 18. También voy a cambiar, por lo tanto, mi sistema secundario de Fedora 18 a Sabayon.

Como la última versión de Anaconda no me acaba convencer, cobre todo con respecto al particionado, voy a instalar Fedora 17 y después a actualizarlo hasta Fedora 18 con Fedup. El último empujón para hacer esto me lo ha dado el enterarme que hacer esto se ha quitado de Anaconda, que antes lo permitía, y que se ha pasado de manera oficial a Fedup. ¡Olé!

¿Mis razones?

Ya estaba un poco quemado con Centos, hasta hice una lista de los programas que no conseguía instalar/compilar/hacer que funcionaran (aunque cuando ya había probado muchos tantos antes, no he conseguido acordarme de todos), pero a pesar de todo seguía aguantando.

Una frase en un comentario en Desdelinux puso en palabras lo que estaba pensando Sigue leyendo

Programar es divertido y hacer un “yum update” también lo es

Estaba un poco aburrido, así que decidí divertirme un poco con yum.

Desde hace un tiempo, cada vez que hago un up (un alias mío para “yum update –skip-broken“, a su vez uso yum como un alias para “sudo yum”) me sale un molesto error de dependencias para libva:

7622 packages excluded due to repository priority protections
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package libva.x86_64 0:1.0.15-7.el6 will be updated
---> Package libva.x86_64 0:1.1.0-1.el6.elrepo will be an update
--> Processing Dependency: mesa-dri-drivers >= 8.0.1 for package: libva-1.1.0-1.el6.elrepo.x86_64
--> Finished Dependency Resolution

Packages skipped because of dependency problems:
    libva-1.1.0-1.el6.elrepo.x86_64 from elrepo-extras

Así que pensé “¿por qué no hacer que yum te insulte cuando haya error de dependencias?”. Sigue leyendo

Script para mostrar la información en los foros

Hace tiempo, me topé con este script maravilloso en alguna sección de las páginas de Centos. Lo que hace es recopilar información del equipo y estado pensado para aquellos posts en los foros en los que tenemos un problema y solicitamos ayuda. Muchas veces nos piden mas información. Pues este script recopila toda la información relevante.

Sus opciones son:

  • Básico (nombre, versión y kernel).
  • Información para problemas con discos duros.
  • Información para problemas con drivers.
  • Información para problemas de red.
  • Información para problemas con los paquetes.
  • Todo lo anterior.

Su máxima funcionalidad es lógicamente para los sistemas operativos de la familia Red Hat, pero las opciones Red, Drivers y Discos Duros son igual de relevantes para otras distribuciones. Además el script (es bastante claro y fácil de entender) siempre se puede modificar para adaptarlo a tu distro de preferencia. Sigue leyendo

Simple escaner de IP’s dentro de una red local

Me acuerdo una vez que estaba en la casa de una clienta y resulta que el router estaba en una IP rara, no era una de las habituales. No traía ningún escaner, así que improvisé uno en bash con un “for” y un “ping”. Esto es lo mismo, pero mas bonito (no me acuerdo de donde lo he sacado).

function scanIPs(){
    for i in {1..254}; do
        x=`ping -c1 -w1 192.168.0.$i | grep "%" | cut -d"," -f3 | cut -d"%" -f1 | tr '\n' ' ' | sed 's/ //g'`
        if [ "$x" == "0" ]; then
            echo "192.168.0.$i"
        fi
    done
}

Sigue leyendo

dobynight.sh

Muchas veces estoy haciendo algo y quiero acabarlo por la noche, después de acostarme. Para eso hace falta un script. Y aunque tengo un servidor (un Pentium 4 de los últimos que salieron), prefiero utilizar mi portatil que es más potente y hace las cosas más rápido. Claro que eso no sería problema si tuviera mis equipos fuera de mi cuerto, pero no es así.

Así que, ¿qué hacer cuando tus equipos producen ruido y estan en tu cuarto? ¿O cómo hacer que sólo produzcan el ruido necesario? Me refiero a ese molesto ruido de estática que producen los equipos y cuando se tiene poco sueño o dolor de cabeza y parece que el resto del mundo se ha muerto, pasa de molesto a odiosamente irritable.

He escrito un script (en realidad es una plantilla) que hace lo que tu le digas. He pensado que a algunos les puede venir bien. En principio no es gran cosa, ¿verdad? Y así es, pero además:

  • Crea un log, si no está ya creado.
  • Registra si ocurre un fallo en lo que querramos que haga.
  • Registra si todo va perfe.
  • Y claro, apaga el ordenador. Sigue leyendo

Getopts es la polla

A todos nos gusta hacer scripts, ¿a quién no? ¿Y qué mejor que un script interactivo? Ohh aquellas tardes cuando descubrí como concatenar un echo, un read y un if:

echo -n " :: ¿Quieres instalar paquete X? (s/N): "
# Respuesta por defecto No
read -n RESPUESTA

if [[ $RESPUESTA == "s" ]] || [[ $RESPUESTA == "S" ]]; then
    echo " :: Instalando paquete X."
    sudo yum install paqueteX
fi

Pero cuando tu script instala y desinstala 150 paquetes, por ejemplo, se hace muy cansino.

Luego me acuerdo cuando descubrí case, que podía hacer programas con menus (como aquellos antíguos del MSDOS 🙂 ).

echo " :: Bienvenido al programa X."
echo "    1. Opcion 1"
echo "    2. Opcion 2"
echo "    3. Salir"

while true; do
    case $OPT in
        1)
            echo " :: Haciendo lo que sea que fuere 1."
            ;;
        2)
            echo " :: Haciendo lo que sea que fuere 2."
            ;;
        3)
            echo " :: Saliendo del programa."
            break
            ;;
        \?)
            echo " :: Comando desconocido."
            ;;
    esac
done

Y claro, luego están los menus tipo aircrack y cualquier programa de la terminal, que Sigue leyendo

Sobre Scripts y su manejo

¿Cómo hacer para ejecutar scripts o comandos personalizados en cualquier directorio? Es tan fácil como modificar el .bashrc:

Lo primero, y lo más fácil, son los alias, un ejemplo sería este que ejecuta el Tor Bundle Browser:

alias tor='./home/$USER/Descargas/tor-browser_es-ES/start-tor-browser'

La  siguiente opción sería crear funciones propias, que además de permitir utilizar cosas más complicadas, también Sigue leyendo

Acelerar Aircrack-ng

En la página web del aircrack-ng nos exlican cómo comprobar más de 50 mil contraseñas por segundo, aumentando así la velocidad de crackeo.

Para que todo funcione, la suite tiene que ser instalada con sqlite=true, luego hay que añadir redes con este comando:

 echo WLAN_XX | airolib-ng testdb --import essid -

Ojo con el menos del final.

Y luego añadimos contraseñas con:

echo 12345678 | airolib-ng testdb --import passwd -

Finalmente, hacemos que precompile las claves con:

airolib-ng testdb --batch

Pero me preguntaréis, si se tiene un diccionario de varios millones de palabras, ¿cómo hacer para no introducirlo manualmente? Para eso Sigue leyendo

Fedora 17 Autoconf Script

En recientes entradas he estado comentando cómo me ha sorprendido gnome-shell. Para probar más y también para comparar frente a debian he decidido instalar fedora 17 en una partición.

Instala menos programas por defecto, eso es bueno en el sentido de que nos deja libertad de elección y malo porque tenemos que instalar muchas cosas.

He hecho un script que instala varios programas, se pueden desactivar los que no se deseen:

Sigue leyendo