Com mostrar les línies no repetides en dos arxius

Objectiu:

Aquesta entrada mostra una comanda, o unió de comandes, Linux per tal de mostrar aquelles línies que no estan repetides en dos arxius. Això potser es pot aconseguir d’una altra manera però no he estat capaç de realitzar el mateix amb eines com diff o comm.

Procediment:

Suposem que disposem de dos arxius anomenats a1.txt i a2.txt. Cadascun d’aquests arxius mostra un contingut com el següent:

$ cat a1.txt
aaa
bbb
ccc
$ cat a2.txt
aaa
ddd
bbb

El resultat d’executar la comanda proposada retornarà el següent:

ccc
ddd

La comanda proposada és:

$ cat a1.txt a2.txt | sort | uniq -c | sort -nr | grep 1 | cut -d ' ' -f5 | sort
ccc
ddd

Fàcil, també, no? Lamentablement, no és perfecta del tot ja que la comanda grep 1 pot mostrar resultats no desitjats, però vaja…

ldapsearch i ldapdecode com a àlies

Objectiu:

Aquesta és una entrada molt simple únicament per definir dos àlies per realitzar cerques en un directori ldap d’una forma més còmoda en un entorn de consola.

Procediment:

Definirem els següents alies:

$ alias lds='function _lds(){ ldapsearch -H ldap://ldap.domain.org -x -w password -LLL -D "uid=ldapuser,cn=users,dc=domain,dc=org" -b "dc=domain,dc=org" "(uid=$1)" cn; }; _lds'
$ alias ldd="perl -MMIME::Base64 -n -00 -e 's/\n //g;s/(?<=:: )(\S+)/decode_base64(\$1)/eg;print'"

Per executar una cerca fem el següent:

$ lds username | ldd

Fàcil, no?

Afegir entrada al boot de Windows Server 2008 R2

Objectiu:

Disposar d’entrades extra al boot de Windows Server 2008 R2 mitjançant la comanda bcdedit.exe.

Procediment:

El procediment no és tant trivial com editar l’arxius boot.ini de versions anteriors de windows però es pot arribar a claudicar que el mètode actual és més robust.

Primer s’ha d’obrir un terminal amb permisos elevats, és a dir, executar el cmd.exe com a administrador. Després podem executar el següent per afegir una nova entrada amb opcions extra:

$ bcdedit # Mostra l'estat actual
$ bcdedit /copy {current} /d "Windows Server 2008 R2 - NoGPLPV"
$ bcdedit /set {ID} loadoptions nogplpv #ID Correspont a la nova entrada creada en el pas anterior
$ bcdedit # Verificar

En el moment d’arrencar la màquina la nova entrada ja estarà disponible. Si no se n’escull cap el sistema arrencarà amb l’entrada per defecte.

Error de DRBD amb LVM quan arrenca el sistema (estat diskless)

Objectiu:

Arrencar un sistema que té LVM sobre DRBD i que no es produeixi un estat Diskless degut a que dmsetup ja ha agafat om a seva la partició amb l’LVM.

Procediment:

Si se segueix el manual de la pàgina oficial de drbd en un moment donat es parla dels filtres de lvm. Això funciona bé sempre i quan aquests filtres s’hagin tingut en compte en el procés d’arrencada.

Per fer que els filtres s’apliquin en el procés d’arrencada, després de modificar l’arxiu /etc/lvm/lvm.conf executem:

$ update-initramfs -u

Això és tot. La propera vegada que arranquem el sistema DRBD podrà agafar la partició com a seva i no apareixerà com a estat Diskless

Problemes amb multicast en Xen en Wheezy

Objectiu:

Aconseguir que les màquines virtuals en un entorn Xen on el host és un debian Wheezy o similar (passa el mateix amb Ubuntu 12.04, per exemple) puguin fer forwarding de paquets multicast correctament.

Procediment:

La comanda, a executar en el dom0, desactiva el multicast_snooping del bridge (<device>) associat a les màquines virtuals:

$ echo 0 > /sys/devices/virtual/net/<device>/bridge/multicast_snooping

Si es vol fer permanent es pot afegir aquesta comanda a l’rc.local o crear un script a init.d.

Dos dies de feina frustrats per aquesta bajanada.