30/12/09

Borrar por tamaño

Para borrar ficheros menores de 25 k:

find . -size -25k -exec rm -f {} \;

Para borrar ficheros mayores de 10 M:

find . -size +10M -exec rm -f {} \;

Más info en el man.

26/12/09

Copias remotas con rsync

Vamos a configurar rsync como demonio para poder copiar ficheros remotamente.

Instalamos rsync:

apt-get install rsync

Para que se ejecute automáticamente como demonio, editamos el fichero:

/etc/default/rsync

Y cambiamos el valor de:

RSYNC_ENABLE=true

Ahora configuramos los recursos que queremos compartir, creando el fichero:

/etc/rsyncd.conf

Con un contenido similar a:

max connections = 2
log file = /var/log/rsync.log
timeout = 300

[RECURSO]
comment = COMENTARIO
path = /DIRECTORIO
read only = no
list = yes
uid = nobody
gid = nogroup
auth users = USUARIO
secrets file = /etc/rsyncd.secrets

Y configuramos la contraseña creando el fichero:

/etc/rsyncd.secrets

Con el contenido en el siguiente formato:

USUARIO:CONTRASENYA

Cambiamos los permisos para tener mayor privacidad de la contraseña:

chmod 600 /etc/rsyncd.secrets

Y reiniciamos el servicio rsync:

/etc/init.d/rsync restart

Ahora desde un equipo remoto podríamos ver el contenido de los recursos con:

rsync USUARIO@IP::RECURSO

Y realizar una copia sincronizada con:

rsync -avz USUARIO@IP::RECURSO/SUBDIRECTORIO/ DESTINO

Más opciones en el man.

24/12/09

Eliminar gdm del arranque

Si no deseamos que en el arranque se ejecute el entorno gráfico, podemos deshabilitarlo con:

sudo update-rc.d -f gdm remove

(Podríamos lanzarlo manualmente con startx)

Para volver a habilitarlo:

sudo update-rc.d -f gdm defaults

Otros métodos aquí.

13/12/09

Usa la Fuerza, Luke!

Quiso la casualidad que tecleara "ps xa" en una ventana de terminal mientras grababa un dvd con brasero, y entre otras me encuentro la siguiente linea:

2248 ? Rl 0:02 growisofs -use-the-force-luke=notray -use-the-force-l

WTF!

Con "man growisofs" descubro que el prefijo -use-the-force-luke se aplica a diversas funciones no documentadas del programa para grabar isos.
¡Muy friki!

2/12/09

Configurar exim4

Resulta muy práctico poder enviar correos desde el sistema, para enviarnos avisos, logs, etc.

Utilizaremos exim4 que es el que instalan debian y ubuntu por defecto y que es más sencillo de configurar que sendmail. En caso de que sendmail estuviera instalado se pueden dar incompatibilidades, por lo que es conveniente desinstalarlo previamente.

Primero instalamos exim4:

apt-get install exim4

Ejecutamos el asistente de configuración:

dpkg-reconfigure exim4-config

Contestando lo siguiente:

En “configuración general del correo” seleccionamos “Internet site”.
En “Nombre del sistema de correo” escribimos el nombre del dominio que cualificará las direcciones de correo sin nombre de dominio, generalmente será el nombre de la máquina, por ejemplo “nombredemimaquina.int”. Debemos asegurarnos de que como tal esté definida en /etc/hosts.
En “Direcciones IP en las que recibir conexiones SMTP entrantes” escribimos “127.0.0.1” para que no acepte peticiones de otras máquinas.
En “Otros destinos para los que se acepta el correo” podemos dejar el valor por defecto, que será el nombre del equipo.
En “Dominios para los que se reenvía el correo” dejamos el valor en blanco.
En “Máquinas para las cuales reenviar correo” también lo dejamos en blanco.
En “Limitar el número de consultas de DNS” dejamos el valor “No”.
En “Mecanismo de entrega para el correo local” seleccionamos “formato mbox”.
Y en “Dividir la configuración en pequeños ficheros” seleccionamos “No”.

Con esto ya podemos enviar correos.



Ahora podemos configurar el servidor para que nos envíe el correo interno a una cuenta de email.

Para ello editamos el fichero:

/etc/aliases

Y editamos/añadimos lineas de la siguiente manera:

root: usuariosistema
usuariosistema: usuario@correoelectron.ico

De esta forma los mensajes dirigidos a root serán entregados a usuariosistema y los de este enviados a la dirección de correo indicada.



Para evitar que se marque nuestro correo como spam, podemos utilizar una configuración alternativa para que se envíen los correos a través de nuestro servidor smtp.

Editamos el fichero:

/etc/exim4/passwd.client

Y añadimos una linea con la forma:

servidor.smtp:nombreusuario:password

Volvemos a configurar exim4:

dpkg-reconfigure exim4-config

Pero esta vez en la primera opción seleccionamos "el correo se envía mediante un smarthost; se recibe a través de SMTP".

Contestamos al resto de las preguntas igual que antes, y cuando pregunte "Dirección IP o nombre de equipo para el smarthost saliente", introducimos la dirección del servidor smtp que vayamos a usar.

En "Desea ocultar el nombre de correo local en los mensajes salientes" marcamos "No".

Ahora se entregarán los correos a través de nuestro servidor smtp.

Para el caso particular de querer emplear una cuenta de gmail, podemos emplear este tutorial.

30/11/09

Bucle for con nombres de fichero con espacios

A veces intentamos usar un bucle for en bash para recorrer un listado de ficheros, pero si los nombres de los ficheros contienen espacios, se separa el nombre en dos o más trozos, provocando errores. Para evitarlo hay que definir con la variable IFS que caracteres se deben utilizar como delimitadores, ya que por defecto incluye además del salto de linea y retorno de carro, el espacio y el tabulado.

Un ejemplo de como emplearlo:

#!/bin/sh
IFS=$'\x0A'$'\x0D'
for fichero in $(ls *)
do

/usr/bin/HAZALGO $fichero
done

Visto aquí y aquí.

29/11/09

Proxy sobre ssh

Podemos crear un proxy a partir de una conexión ssh con un comando del tipo:

ssh -D 9999 USUARIO@IP

Y en el navegador seleccionar en la configuración del proxy 'localhost' como servidor SOCKS y 9999 como puerto.

Más información aquí.

Exportar DISPLAY

Si en nuestra sesión gráfica abrimos una terminal con una sesión de root, y queremos desde esta ejecutar una aplicación gráfica, nos dará el error:

Error: Can't open display:

Para evitarlo debemos exportar el display con el siguiente comando:

export DISPLAY=:0.0

Ahora podremos ejecutar correctamente las aplicaciones gráficas.

5/11/09

Montar carpeta Samba en el arranque

Para montar una carpeta Samba en el arranque, debemos tener instalado el paquete smbfs y añadir al /etc/fstab una línea similar a esta:

//IP/RECURSO /media/PUNTOMONTAJE smbfs auto,username=USUARIO,password=CONTRASENYA,dir_mode=0777,file_mode=0777,rw,uid=1000,gid=1000 0 0

Ahora bien, esto deja nuestro nombre de usuario y contraseña para el recurso samba muy a la vista. Para evitarlo, como usuario root, creamos un fichero, por ejemplo:

/root/smbpwd

Con las líneas:

username=USUARIO
password=CONTRASENYA

Y modificamos sus permisos para que sólo el root pueda leerlo y escribir en él:

chmod 600 /root/smbpwd

Y cambiamos la línea del fstab de la siguiente manera:

//IP/RECURSO /media/PUNTOMONTAJE smbfs auto,credentials=/root/smbpwd,dir_mode=0777,file_mode=0777,rw,uid=1000,gid=1000 0 0

¡Mucho más seguro!

Más información aquí.

4/11/09

Problemas con Tuxguitar

Tuxguitar es un editor de partituras para guitarra que nos permite visualizar las partituras en solfeo, tablatura y también visualizar las notas en el mástil de la guitarra. Admite varios formatos de partitura y también importar desde ficheros midi.

Podemos instalarlo fácilmente con:

apt-get install tuxguitar

En el caso de que al reproducir la partitura no suene el sonido, probablemente se deba a que no tengamos instalado un player de midis. Para solucionarlo instalamos el reproductor/conversor
timidity:

apt-get install timidity

Posteriormente editamos el fichero:

/etc/init.d/timidity

Y modificamos la linea con el parámetro TIM_ALSASEQ para que quede:

TIM_ALSASEQ=true

Reiniciamos el servicio:

/etc/init.d/timidity restart

Y por último en tuxguitar vamos al menú Herramientas -> Preferencias -> Sonido y en el apartado de Puerto MIDI seleccionamos "TiMidity port 0 #1".

¡A tocar!