Mandar mails desde el sistema a nuestro correo

Muchas veces cuando administras sistemas es un poco complicado saber qué es lo que le pasa a tus maquinas en cada momento o cuando aparece algún problema en alguna de ellas.

Para ello podemos configurar nuestra maquina para que nos mande correos cada vez que sucede alguna cosa.

El sistema internamente se manda mails, estos quedan normalmente en el directorio /var/mail/root, este fichero no es nada mas que un fichero de texto con la bandeja de entrada del usuario root.

Si en este directorio no tienes nada, lo mas probable es que no tengas el sistema configurado para mandar mails, así que a ello vamos.

Primero de todo será necesario que nuestro sistema tenga un servidor de correo smtp, es decir, el servicio que permite mandar mails.

# apt-get install exim4

También será necesario instalar un programa como transporte para mandarlos.

# apt-get install mailx

Este último será el gestor de correo que se encargará de mandar los mails al smtp interno.
También nos será útil para mandar el output de comandos a un mail.

cat report.txt |mail -s ‘Reporte del servidor `hostname`’ mi@correo.com

Si justo ejecutamos este comando, veremos que en nuestro correo no llega ningún mail, esto es porque tenemos que configurar el servidor para que pueda mandar correos al exterior.

Para evitar problemas de seguridad, sólo permitiremos que se pueda usar el smtp desde local. Para ello editaremos el fichero update-exim4.conf.conf

# vi /etc/exim4/update-exim4.conf.conf
dc_eximconfig_configtype=’internet’
dc_other_hostnames=’nombrelocal’
dc_local_interfaces=’127.0.0.1′
dc_readhost=”
dc_relay_domains=’dominio.com’
dc_minimaldns=’false’
dc_relay_nets=”
dc_smarthost=”
CFILEMODE=’644′
dc_use_split_config=’false’
dc_hide_mailname=”
dc_mailname_in_oh=’true’
dc_localdelivery=’mail_spool’

Recuperar el password de root de MySQL

Cuantas veces has accedido a un servidor que configuraste hace tiempo y como eres un paranoico con los passwords, pusiste un password al usuario root del MySQL que no recuerdas cual es?
No te rompas mas la cabeza tratando de meter los passwords mas comunes o tratando de hacer ingeneria social sobre tu mismo. Arranca la base de datos en modo seguro y define un nuevo password.

Primero de todo paras el servicio MySQL

# /etc/init.d/mysql stop

Y luego lo arrancas sin que pille los permisos de las tablas

# /usr/bin/mysqld_safe –skip-grant-tables &

Ejecutas el cliente de mysql tal cual

# mysql

y ya tienes una terminal de root del mysql

mysql>

le indicamos de usar la base de datos mysql:

mysql> use mysql;

y para cambiar el password:

mysql> update user set password = password(’nuevo_password’) where user=’root’ and host=’localhost’;

a continuación:

mysql> flush privileges;
mysql> exit;

Ahora pararemos el mysql (que hemos arrancado en un modo raro) y lo volvemos a arrancar para que funcione como es debido:

# /etc/init.d/mysql stop
# /etc/init.d/mysql start

Luego ya puedes acceder a tu preciosa base de datos MySQL con el nuevo password:

# mysql -uroot -pnuevo_password

et voilá!

mysql>

cssh

Administradores de sistemas, que estáis hasta los * de entrar cada día a tropocientas maquinas y ejecutar los mismos comandos!, llega cssh, haz lo que debas una sola vez!

cssh es un script escrito en perl que te permite hacer login en varias maquinas a la vez y ejecutar el mismo comando en todas ellas.

el programa está aún en fase muy inicial, pero ya es usable.

Pues empezamos. Hay la forma larga (que no me ha funcionado) y la corta (que si).

Empezamos por la corta para quien quiera tener el cssh funcionando en menos de un periquete.

Vamos a la página de nuestros queridos repositorios debian (ahora mismo me encuentro instalando el cssh desde una mumuntu 9.04, disculpad, una ubuntu 9.04 (en qué estaría pensando!).

http://packages.debian.org/sid/clusterssh

# dpkg -i clusterssh_3.27-1_all.deb
# apt-get -f install

y ya lo tenemos funcionando.

Si no te funciona dejo la forma larga, pero yo desistí.

# cd /home/laura/bin
# wget -c http://cssh.sourceforge.net/files/cssh_alpha/0.03/cssh.tar.bz2
o
# wget -c http://cssh.sourceforge.net/files/cssh_beta/0.03/cssh_beta-0.03.2.2.tar.bz2

Los descomprimimos y tratamos de ejecutar el install.sh

Lo mas probable es que si no trabajamos en perl no tengamos la mayoria de modulos necesarios de perl y será necesario instalarlos.
Primero probaremos que los tenemos instalados ejecutando:

# perl -MNet::SSH::Perl -e ‘print “okn”‘

Si sale un ok quiere decir que los tenemos instalados, en caso contrario deberemos ejecutar

# perl -MCPAN -e ‘install Net::SSH::Perl’

Y nos empezará a preguntar un montón de cosas (la instalación dura varios minutos y requiere nuestra atención).

http://cssh.sourceforge.net/docs/cssh_man.html

tunelizar puertos a través de un proxy

Venga, hoy el más difícil todavía!
Hace unos meses publiqué un artículo en el antiguo blog como tunelizar puertos por otros puertos, para salvar firewalls y seguir usando tus protocolos favoritos. Pero la cosa se complica cuando queremos que además esto se pase por un proxy con nombre de usuario y contraseña.

Si eres usuario de guifi.net, linuxero y ircadicto, tienes un problema, pero para esto están otros linuxeros que se han encontrado con tu mismo problema, este es el caso de Jose de nómada.

Cuando tu sales por guifi.net es necesario configurar un proxy para poder salir a internet. Los navegadores tienen un interfaz intuitivo para configurar uno, pero cuando vamos por consola, es imposible hacer wgets o incluso actualizar el sistema, esto normalmente lo salvamos haciendo un export.

export proxy_http=”http://usuario:contraseña@ipproxy:portproxy”
export proxy_ftp=”http://usuario:contraseña@ipproxy:portproxy”
export proxy_socks=”http://usuario:contraseña@ipproxy:portproxy”

pero incluso haciendo esto no es posible conectarse por ejemplo al irc por el puerto 6669, o al ssh por el puerto 22.

Corkscrew es nuestro salvador!

# apt-get install corkscrew

a continuación creamos un fichero donde meteremos el usuario y el password del proxy

# vi /home/laura/.ssh/myauth
# usuario guifi.net (para poner un ejemplo)
nombre.apellido:contraseña

lo protegemos un poquito de miradas curiosas

# chmod 600 /home/laura/.ssh/myauth

a continuación en el fichero de configuración del ssh en ~/.ssh/config añadiremos una linea (si no existe, lo creamos).

# vi /home/laura/.ssh/config
# Corkscrew
Host *
ProxyCommand /usr/bin/corkscrew ipproxy puertoproxy %h %p /home/laura/.ssh/myauth

A partir de ahora, ssh cuando se connecte va a usar la configuración que …

Ubuntu 9.10: Evince y impresoras

Pues me acabo de encontrar con una ubuntu 9.10, que anteriormente era una 9.04 y al tratar de imprimir un fichero pdf con el visor de documentos por defecto, el evince, no aparecía la impresora.

Para que vuelva a aparecer la impresora basta con eliminar y volver a crear la impresora.…

Administrar los runlevels

Esto que andaba buscando el comando para modificar automáticamente los servicios que se arrancan en cada runlevel, ya que al no ser un comando que uso mucho, se me olvida siempre su nombre, y para no ir andando con cincuentamil comandos, a veces simplemente basta con entender un poco el sistema y hacerlo manualmente (en este caso pones una K o una S en los ficheros de /etc/rc.N, cada fichero hace referencia a un servicio).

Así que he encontrado un programa que está bastante chulo, se trata de sysv-rc-conf

# apt-get install sysv-rc-conf

y al arrancarlo tenemos esta amigable interfaz :)

sysv_rc_conf

¿Quién dice que la consola es difícil? :D…

meter una livecd en un stick usb – Unetbootin

Pues voy a arreglar la mierdecilla de ayer, esto pasa cuando quieres hacer las cosas rápido. Que te salen mal.

Preguntando por ahí la mejor forma para grabar una iso en un stick usb es con el unetbootin.

# apt-get install unetbootin

El programita es muy cutre pero está muy bien. Una de sus funcionalidades es que permite elegir una distribución y la versión de la misma que queremos grabar y el programa se descarga la iso de la web correspondiente.

Un programa interesante y recomendable de llevar siempre encima :)

Gracias cbk ;)

Entrada en redacción, lo que cuento aquí es mentida!
La distribución que hemos puesto a prueba es un moblin, una distribución de gnu/linux destinada a netbooks, estos portátiles tan pequeñitos.

Cada vez mas nos encontramos portátiles sin lectora de CDs y es necesario cargar los datos en un stick usb o trajetear la lectora de cds a todas partes.

Así que vamos a meter un moblin en un stick usb.

Primero de todo es necesario descargarse la imagen que nos ofrece moblin en su página web.

Una vez descargada la imagen, con extensión .img, con el gparted formatearemos el stick usb a fat32 o a ext3, como se desee (con ext3 no lo he probado) y volcaremos la .img en la partición del stick usb:

dd if=moblin-2.0-final-20090924-001.img of=/dev/sdb1

La operación durará unos minutos, contad que la iso son 721 megas.

Esta operación también funcionará en .iso.…

fdupes

fdupes no es un juego de acción en 8 bits, es una herramienta para todos aquellos que se dedican a hacer copias de seguridad dentro de copias de seguridad, como una servidora, que perder datos no es bueno para la salud.

metal-slug-anthology-1

fdupes analiza bit a bit los ficheros de un directorio indicado y crea un md5 para cada uno de los elementos, finalmente te muestra aquellos que están duplicados.

fdupes permite además seguir softlinks, hardlinks, directorios recursivos (que fallo si faltase!), excluir ficheros vacíos, excluir ocultos entre otros, además tiene la opción -d que permite eliminar ficheros duplicados automáticamente (recomendable usar con la opción -f de omitir el primero duplicado).

# apt-get install fdupes

más información:

# man fdupes