Waiting for IO
Reading time: 2 – 3 minutesWhat processes are waiting for IO interrupts:
while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done
What processes are waiting for IO interrupts:
while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done
Reading time: < 1 minute Specially when you have to look up inside Postfix logs or Syslog in general it could be the swiss knife tool you need: timegrep.
You have to know that the tool is developed using Python. And is very easy to upgrade or fork the code.
Reading time: < 1 minute Really useful command of ssh package to add public key of your user account to a remote SSH server and then access there with passwordless authentication method. ssh-copy-id [-i [identity_file]] [user@]machine In the past I wrote a simple cookbook to explain this process but now this is as simple as possible. Don't forget ssh-copy-id is the most easy way to add your ssh public key in remote servers.
Configure spamassassin is never easy to do. But when you look for information in Google usually you will be mad . The most common help method in linux is use ‘man command’ but it doesn’t work or information is not enough usually.
After a lucky search I found this command to get an extended information about how to configure spamassassin.conf file.
perldoc Mail::SpamAssassin::Conf
Aquesta setmana he tingut un expedient X’s amb el servidor d’oriolrius.cat que tinc virtualitzat en un servidor de Xen. La qüestió és que segons Xen la màquina estava corrent normal però encanvi no podia accedir ni a la consola ni enlloc. Ja que la màquina no estava a la llista de processesos del sistema. Així doncs, després de més d’1any he hagut d’aprendre alguna comanda de Xen CLI per poder solucionar el problema.
Per obtenir la llista de màquines virtuals que té el sistema:
xe vm-list
amb aquesta comanda podem obtenir el uuid, aquest identificador ens serà útil per poder forçar la màquina perquè es pari. Això ho podem fer així:
xe vm-reset-powerstate uuid=XXXXXXXXXXXXXXX force=true
En cas de que la comandi falli, per exemple, amb un error de:
The operation could not be performed because a domain still exists for the specified VM.
vm: XXXXXXXXXXXXXXX (nom_servidor)
domid: 1
Llavors podem eliminar el domini que ens causa problemes així:
/opt/xensource/debug/destroy_domain -domid 1
Si la comanda no retorna error vol dir que hem pogut eliminar el domini i ja podem tornar a executar la comanda xe vm-reset-powerstate.
Gràcies a això he pogut fer-li entendre al Xen server que la màquina estava parada i des de la GUI he tornat a iniciar la màquina sense problemes. En el meu cas aquesta anomalia s’havia donat degut a que el sistema s’havia quedat sense memòria, o sigui, que entenc que hi hauria alguna part del hypervisor que tindria leaks de memòria.
Les noves versions d’Ubuntu incorporen AppArmor i a vegades això suposa un problema, així que cal recordar com anul·lar-lo completament per depurar els problemas abans de tornar-lo a activar.
/etc/init.d/apparmor teardown
A vegades a l’accedir per SSH a un servidor necessitem connectar amb la sessió DBUS que té iniciat un usuari, la forma de fer-ho és tan senzilla com això:
eval `/usr/bin/dbus-launch --auto-syntax`
Reading time: 2 – 2 minutes
A aquestes altures tothom coneix screen i a quin més qui menos li ha solucionat més d’un problema. Pels que no el coneixeu, podeu donar un cop d’ull als posts que vaig fer sobre el tema:
Per començar un screenshot de l’eina:
Pel que fa a les funcionalitats hereda tota la potència i accessos ràpids que té screen, a més d’un entorn basat en ncurses per configurar l’aspecte de les pantalles i comportament de l’eina. És genial amb un cop d’ull poder saber les consoles que tenim obertes i monitoritzar el sistema des de la shell. A més també permet instal·lar-se al ~/.profile de l’usuari de forma senzilla (byobu-launcher-install) perquè al fer un login o un ssh tinguem la sessió directament dintre del byobu.
A la Ubuntu Lucid (10.04) i a Fedora 14 ja he trobat el paquet, pel que fa a MeeGo aquest no estava disponible però m’he baixat el tar.gz i compilar-lo ha estat 1s.
La pàgina web de: byobu.
Algunes referències interessants de les tecles d’screen:
Mai ho havia necessitat fins avui, tenia un samba que accedia a un AD per saber quins eren els seus usuaris i grups d’usuaris. Així doncs, el problema que tenia era com podia saber quins usuaris tenia i quins grups. Es veu que tot això es fa a través de la comanda wbinfo.
A continuació poso una petita referència dels paràmetres que més bé m’han anat:
# llista usuaris
wbinfo -u
# llista grups
wbinfo -g
# info d'un usuari
wbinfo -i DOMINI+username
# grups que té l'usuari
wbinfo -r DOMINI+username
# informació d'un grup a partir del GID
wbinfo --gid-info=GID
# obtenir el GID a partir del nom del grup
wbinfo --group-info=DOMINI+groupname
# informació d'un usuari a partir del UID
wbinfo --uid-info=UID
Referència completa de la comanda: wbinfo
Reading time: 2 – 2 minutes
Amb les quatre notes que adjunto en aquest article es preten tenir una guia per tal de poder seguir i entendre els fitxers de configuració associats a PAM.
Quan PAM va associat a un servei aquest té un fitxer de configuració dins de /etc/pam.d sovint amb el mateix nom del servei o quelcom que ens el recorda. Dins de cada fitxer d’aquests es defineixen quatre categories pel procés d’autenticació:
No és obligatori definir les quatre categories per tots els serveis, hi ha serveis que amb la categoria auth, en tenen prou. O d’altres que les requereixen totes.
PAM té una selecció de diferents models per cada categoria que s’organitzen en una pila. Cada mòdul esta etiquetat amb el que s’anomena una bandera de control. A través d’aquestes eines és com l’administrador controla el procés d’autenticació dels usuaris sobre els serveis.
Les banderes de control suportades per PAM són:
Si un mòdul marcat amb required, requisite o sufficient respon de forma negativa es deté l’execusió de la pila de forma inmediata.
Si la resposta és positiva en un mòdul: required, requisite o optional llavors PAM seguirà examinant la resta de mòduls.
Si un mòdul sufficient respon positivament es considera positiva la resposta a tota la categoria que s’esta examinant.