$ while true; do clear; ./twitter.pl -r; sleep 60; doneSi agregamos un bucle infinito y algo de imaginación podremos observar el auténtico poder de la linea de comandos. Espero que te/os sirva.
alemania_2006 tip soccer cake futbol bake games userlinux macosx mac meme ssh hack beers ibook copa rsidenotes freebsd blogs juegos debian league sidenotes films lucux cms bsd blogsfera iphone rfilms update mundial web humor deportes programación php opinion ubuntu blog champions felicidades openbsd cakephp conciertos barça bash 2007 lugo frases cumpleaños nintendo apple linux mysql seguridad personal ds 2008 san_froilan
Year 2010
Year 2009
Year 2008
Year 2007
Year 2006
Year 2005
Year 2004
Year 2003
Year 2002
Twitter en consola
Bash tip: Convertir pdf en jpg
function convert_all
{
convert $1 _.jpg
j=0
for i in *.jpg; do
j=`expr $j + 1`
mv "$i" `echo "$j".jpg`;
done
}
convert_all document.pdf
Con esta pequeña función lo que hago es convertir el pdf pasado como argumento $1 a jpg (0_-.jpg, 1_-.jpg...), en el bucle renombro las imágenes de forma que queden 1.jpg, 2.jpg... correspondiendo a las páginas del pdf. Bash tip: Operaciones con imágenes
# cd ~/masde1000fotos/ # for f in `ls`; do convert $f -rotate 90 $f; doneAdemás de estas simples operaciones, si echamos un vistazo al manual de convert vemos la cantidad de efectos que soporta. Con un poco de imaginación y algunos recursos el lÃmite está en nuestra imaginación:
K3b y mp3
Pues si, tengo instalado lame, mad, tengo los w32codecs, reproduzco mp3, ogg y lo que se me antoje, pero a la hora de grabar un CD Audio para el coche con el tiempo justo k3b se empeña en decir que no, que el formato no está soportado.
En fin, que estos chicos de Ubuntu se han cubierto de gloria otra vez más, cambiando la forma de hacer las cosas:
# apt-get install k3b-mp3 Leyendo lista de paquetes... Hecho Creando árbol de dependencias... Hecho Se instalarán los siguientes paquetes NUEVOS: k3b-mp3 0 actualizados, 1 se instalarán, 0 para eliminar y 0 no actualizados. Necesito descargar 33,1kB de archivos. Se utilizarán 98,3kB de espacio de disco adicional después de desempaquetar. Des:1 http://es.archive.ubuntu.com breezy-backports/universe k3b-mp3 0.12.7-1ubuntu1~breezy1 [33,1kB] Descargados 33,1kB en 4s (8250B/s) Preconfigurando paquetes ... Seleccionando el paquete k3b-mp3 previamente no seleccionado. (Leyendo la base de datos ... 93297 ficheros y directorios instalados actualmente.) Desempaquetando k3b-mp3 (de .../k3b-mp3_0.12.7-1ubuntu1~breezy1_i386.deb) ... Configurando k3b-mp3 (0.12.7-1ubuntu1~breezy1) ... #Y no es la dificultad lo que me exalta, sino el tener que admitir la razón a las malditas teorÃas del amigo Murphy.
SpamAssassin

SerÃa una utopÃa pensar que SpamAssassin fuera 100% efectivo puesto que es imposible conocer de antemano todas las posibles variantes de spam que van saliendo dÃa a dÃa, por lo que tendremos que ir alimentando su conocimiento y sus filtros bayesianos.
¿Cómo podemos enseñar a SpamAssassin lo que es bueno y lo que no?. Utilizando correctamente un servidor IMAP y los comandos correspondientes, me explico.
Vamos a crear una cuenta de correo antispam@dominio.com con acceso IMAP. En esa cuenta y con nuestro cliente favorito creamos dos carpetas: ham/ y spam/. La primera la utilizaremos para correos legÃtimos que SpamAssassin ha marcado como spam y la segunda para situar correos no solicitados, bastante intuitivo :).
Una vez tenemos una muestra considerable en ambas carpetas, (si tenemos varias cuentas de correo donde el tráfico sea más o menos intenso será cuestión de un par de dÃas), tenemos que decirle a SpamAssassin qué es bueno y qué es malo:
# cd /var/spool/postfix/www.dominio.com/antispam/ # sa-learn --spam .Maildir/spam/ Learned tokens from 1 message(s) (33 message(s) examined) # sa-learn -ham .Maildir/ham/ Learned tokens from 12 message(s) (54 message(s) examined)Como observación decir que no aprenderá de todos los mensajes de la carpeta, por eso la muestra ha de ser abundante. El comando sa-learn viene en el paquete de SpamAssassin y si echamos un vistazo a su manual vemos todas las posibilidades del mismo. Con apenas un argumento podemos aprender lo que es bueno, lo que es malo, e incluso olvidar lo aprendido, ¡ojalá fuese tan sencillo en la vida real!.
Actualizando phpBB
Bash tip: Renombrar masivamente (y III)
En esta ocasión se presentaba algo más peliagudo a priori. Para poneros en situación imaginaos como administradores de un Bind9 con 500 dominios en su poder, no está mal ¿verdad?.
Ahora el problema, por circunstancias ajenas se decide cambiar de proveedor de Internet, con lo que la IP también varÃa. De un simple vistazo podemos decudir que en cada zona de dominio tenemos (al menos) dos entradas A con la ip que quedará desfasada.
Tenemos dos opciones, editar a mano todos y cada uno de esos archivos y rezar para no equivocarnos al escribir (o copiar&pegar) la nueva IP, o hacerlo como todo geek harÃa:
# for i in *.hosts; do cat $i | sed 's/111.111.111.111/222.222.222.222/' > $i.new ; rm $i; mv $i.new $i; doneAunque creo que se entiende a simple vista: Para todos los archivos *.hosts buscamos la IP 111.111.111 y la sustituimos por 222.222.222.222 en un archivo temporal .new. Después machacamos los originales.
¡Que la fuerza bash te acompañe!
Actualización: Repasando he encontado otra entrada donde explicaba exactamente lo mismo. Estoy mayor, lo sé :(.
Bash tip: Redimensionando imágenes
# cd ~/masde1000fotos/ # for f in `ls`; do convert $f -resize 510x383 $f; doneConcretamente estamos pasando fotos de 1280x960 a un tamaño relativamente considerable: 510x383 (conservando las proporciones). Ahà queda el tip, para la posteridad.
Reemplazo múltiple
$ cd X/ $ for f in `grep -r cadena * | cut -f 1 -d : | uniq`; do cat $f | sed s/cadena/cadena2/g > /tmp/temporal.temp && mv -f /tmp/temporal.temp $f; done $Recuérdalo pequeño saltamontes, te ahorrará muchas horas de trabajo ;).
Bash tip: Renombrar masivamente (I)
bash-2.05b$ for i in *.mp3; do mv "$i" `echo "$i" | tr ' ' '_'`; doneY si ahora renombramos todas nuestras fotos (unas 100 o asÃ) de foto01 a img01, ¿haremos la misma operación 100 veces? NO, para eso está el bash:
bash-2.05b$ for i in `ls *jpg`; do mv "$i" `echo "$i" | sed 's/foto/img/'`; done