Tengo costumbre de bromear un poco con los pesebres cada año y para no perder la costumbre, el de este año no podia ser más geek. El del año pasado esta por este enlace
El pesebre geek del blog
Tengo costumbre de bromear un poco con los pesebres cada año y para no perder la costumbre, el de este año no podia ser más geek. El del año pasado esta por este enlace
Forzando a cerrar procesos cuyas conexiones estan en estado CLOSE
En ciertas ocasiones, he tenido que cancelar las conexiones del servicio apt-cacher Debian que se me vuelve cuello de botella al saturar la limitante de uso de las interfaces de red.
Aunque en otra oportunidades lo he usado para cancelar las conexiones en un conocido simulador de router Cisco.
El comando sería algo así
#!/bin/bash
netstat -plant | grep CLOSE | awk {'print $7'} | sed "s/[^0-9]//g" | xargs kill -9
Aunque en otra oportunidades lo he usado para cancelar las conexiones en un conocido simulador de router Cisco.
El comando sería algo así
#!/bin/bash
netstat -plant | grep CLOSE | awk {'print $7'} | sed "s/[^0-9]//g" | xargs kill -9
Yaourt y de como me toca actualizar
Desde que me mude a ArchLinux, no he tenido en problemas de aprender cosas nuevas. A raíz de la necesidad de usar paquetes en AUR, he tenido siempre la dificultad de verificar/obtener versiones nuevas tras un proxy. Normalmente, la instalación si me funciona, pero no al momento del chequeo de updates. La cosa a la que me refiero es que no me funciona muchas veces este comando
Así que me resolví hacer dos scripts para al menos , de forma visual dar con los paquetes desactualizados.
El primero en bash sería algo así
#! /bin/bash
yaourt -Q | grep local | awk 'BEGIN { FS="/"} {print $2 }' | awk '{print $1}' > AUR
Las dos primeras partes busca los paquetes que están instalados y filtra los que fueron de forma local, obteniendo resultados de esta forma
Pero como lo que requiero es el nombre del paquete, hago un filtro usando como separador el carácter "/" obteniendo algo asi
Luego como esta separado el nombre de la versión con un espacio, el nombre seria una columna ,
AL final decidí guardar el resultado en un archivo, de nombre AUR.
El segundo script en Perl sería para que por cada linea en el archivo AUR me busque en yaourt. Sería algo así
#!/usr/bin/perl
open (ARCH, "AUR");
foreach $linea (<ARCH>) {
chomp($linea);
system("yaourt -Ss ".$linea );
}
close(ARCH);
Al hacer esto , el resultado que se muestra es que el paquete desactualizado aparece marcado en rojo.
He acá mi drama.
yaourt -Su --aur
Según Internet, la variable de entorno es fundamental, pero igual. No me ha funcionado, Así que me resolví hacer dos scripts para al menos , de forma visual dar con los paquetes desactualizados.
El primero en bash sería algo así
#! /bin/bash
yaourt -Q | grep local | awk 'BEGIN { FS="/"} {print $2 }' | awk '{print $1}' > AUR
Las dos primeras partes busca los paquetes que están instalados y filtra los que fueron de forma local, obteniendo resultados de esta forma
...
local/codecs-all 20071007-4
local/ddcxinfo-arch 0.8-2
local/etherwake 1.09-3
local/go-openoffice.org-es 3.2.1.3-2
...
Pero como lo que requiero es el nombre del paquete, hago un filtro usando como separador el carácter "/" obteniendo algo asi
...
codecs-all 20071007-4
ddcxinfo-arch 0.8-2
etherwake 1.09-3
go-openoffice.org-es 3.2.1.3-2
...
Luego como esta separado el nombre de la versión con un espacio, el nombre seria una columna ,
awk '{print $1}'
me daría sólo esa columna
...
codecs-all
ddcxinfo-arch
etherwake
go-openoffice.org-es
...
AL final decidí guardar el resultado en un archivo, de nombre AUR.
El segundo script en Perl sería para que por cada linea en el archivo AUR me busque en yaourt. Sería algo así
#!/usr/bin/perl
open (ARCH, "AUR");
foreach $linea (<ARCH>) {
chomp($linea);
system("yaourt -Ss ".$linea );
}
close(ARCH);
Al hacer esto , el resultado que se muestra es que el paquete desactualizado aparece marcado en rojo.
He acá mi drama.
Añadiendo un TimeStamp a 'history'
Ordinariamente el comando 'history ' indica, el número de comando y el comando ejecutado. Sin embargo , no es suficiente en muchos casos,(en el desarrollo de software por un equipo ). Es útil ver cuando adicionalmente vemos las fechas de ejecución del comando.
Si usamos
Obtendríamos un resultado similar a este :
Para hacer los cambios permanentes puede añadirse el comando anterior en tu .bashrc
echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' | tee -a ~/.bashrc
Si usamos
export HISTTIMEFORMAT="%d/%m/%y %T "
Obtendríamos un resultado similar a este :
.
.
.
421 20/04/10 21:10:27 cp -vRf * ../ubuntu
422 20/04/10 21:10:27 cd ..
423 20/04/10 21:10:27 mount
424 20/04/10 21:10:27 umount /var/www/tmp
425 20/04/10 21:10:27 ll
426 20/04/10 21:10:27 cd ubuntu/
427 20/04/10 21:10:27 l
428 20/04/10 21:10:27 cd install/
429 20/04/10 21:10:27 ll
430 20/04/10 21:10:27 cd netboot/
431 20/04/10 21:10:27 ll
432 20/04/10 21:10:27 ll /var/lib/tftpboot/
433 20/04/10 21:10:27 cp -Rf * /var/lib/tftpboot/
434 20/04/10 21:10:27 ll /var/lib/tftpboot/
435 20/04/10 21:10:27 cp -Rf * /var/lib/tftpboot/ubuntu-installer/
436 20/04/10 21:10:27 ll
437 20/04/10 21:10:27 ll ubuntu-installer/
438 20/04/10 21:10:27 cd /var/lib/tftpboot/
.
.
.
.
Para hacer los cambios permanentes puede añadirse el comando anterior en tu .bashrc
echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' | tee -a ~/.bashrc
Usando inotifywatch
A veces me hacen preguntas extrañas. Créeme, no me esperaba algo así.
"¿Existe algo para ver los cambios en un filesystem?"
Ese día, respondí que no. Pero me sonaba. Pensé: "Cambios en filesystem, es como cambios en inodos." Bueno, ni modo, busqué en la red y me encontré con esta herramienta muy genial.
Se llama inotifywatch, forma parte del paquete inotify-tools y usa el mecanismo de seguimientos de de eventos relacionados a un archivo u a algún directorio (ver man 7 inotify) del kernel. Lo he vistos en varias distros.
Un ejemplo de su uso
[user@pc ~]$ inotifywatch -v -e access -e modify -t 15 -r ~
Establishing watches...
Setting up watch(es) on /home/user
OK, /home/user is now being watched.
Total of 2024 watches.
Finished establishing watches, now collecting statistics.
Will listen for events for 15 seconds.
total access modify filename
219 219 0 /home/user/Desktop/
8 0 8 /home/user/.gconfd/
En el ejemplo anterior, indica los eventos de acceso y modificación en un tiempo de 15 de forma recursiva en el directorio personal del usuario 'user'
Esta herramienta puede detectar casi cualquier operación sobre algún archivo u directorio, por lo que se puede usar en diversos escenarios, desde por ejemplo, ver que cantidad de archivos temporales crea un proceso u ver que archivo es muy descargado en su servidor web sin esperar a un crotab actualize sus estadísticas, por mencionar alguno.
Enlazando Twitter con Rhythmbox en ArchLinux/Debian/Ubuntu
Advertencia: Estas instrucciones sólo sirve para menor de Gnome 3.0
Desde hace meses he estado usando Arch Linux y en la medida de lo posible he estado adaptando lo que tenía antes instalado en Ubuntu. No hace días, vi que hay cambios para instalar el plugin para mostrar en Twitter lo que escuchas en Rhythmbox , por lo que origina este nuevo post, que, enfocado a Arch Linux, mencionare como seria hacerlo en Debian y derivados.
Lo primero es instalar el wrapper para entender la Api de Twitter , cuyo paquete es llamado python-twitter . En caso de Ubuntu Jaunty u Debian Lenny, la versión requerida es 0.6.1 que no esta en repositorio, por lo que ademas de instalar python-simplejson, lo bajarías de la página del proyecto en Google Code
Hay dos formas de obtener el plugin . La obtención del código del plugin fue movido de un repositorio SVN a un repositorio GIT por lo que podemos usarlo vía git
git clone git://github.com/dragon3/rhythmbox-twitter-plugin.git
En caso de no tener instalado el paquete git, se puede disponer del comprimido en el URL http://github.com/dragon3/rhythmbox-twitter-plugin/tarball/master
Luego de obtenido el código se accede al directorio y ejecutamos en consola como root
make install
Si hemos hecho todo bien, debería de aparecer entre los complementos en Rhythmbox "Twitter notifier"
Así debería de verse después de instalado el plugin
En Twitter se algo verá así
Recomendaciones
- Si posees muchas canciones, trata que sean del mismo álbum y artista, algunos followers que tengas puede ver como spam tus updates que no sigan estas condiciones.
- Si posees canciones sin artista y sin saber de que álbum pertenecen , mejor no actives el plugin pues se pueden verse así.