Hoy 14 de noviembre de 2007, aprovechando que tengo cosas mejores qué hacer -pero infinitamente más aburridas- he decidido lanzar finalmente Gheesh.org.
Aquí encontraréis principalmente una colección de "recetas" informáticas que confío os sean de utilidad. También incluiré algunas cosillas más que resulten interesantes, graciosas, o que simplemente me dé el punto y copie/pegue de algo que acabe de leer por Internet (eso sí, intentaré citar siempre la fuente, que no me gusta ponerme medallas ajenas ;-).
Gracias a todos aquellos que participasteis en el regalo del dominio. Gracias especialmente a Itnas por haberme animado a ello y por diseñar el logo de la página (usando software libre, claro).
Las siguientes líneas de código permiten hacer una copia de seguridad de una base de datos MySQL:
/usr/bin/mysqldump -u root -p basededatos -c | gzip -c > /var/backups/db.sql.gz
Restaurar:
gzip -dc /var/backups/db.sql.gz | mysql -u root -p basededatos
Para hacer copia de un repositorio Subversion:
svnadmin dump /var/lib/svn | gzip -c > /var/backups/svn_dump.gz
Restaurar:
svnadmin create /var/lib/svn/
gzip -dc /tmp/carmen_svn_dump.gz | svnadmin load /var/lib/svn/
Paquetes necesarios:
Ejecutamos "Instalar VMware Tools" desde el menú de VMware en el host y seguimos los siguientes pasos en el guest:
Supongamos que tenemos una máquina Linux correctamente instalada y funcionando. Sería muy útil disponer de una copia completa y exacta para poder restaurarla en caso de fallo o para copiar una misma configuración en varias máquinas.
El proceso para conseguirlo sería el siguiente:
mount /dev/hda1 /mntSi tenéis una máquina Linux corriendo SSH conectada de forma permanente o casi permanente a la red y examináis el contenido del fichero /var/log/auth.log (las líneas contienen el identificador "sshd") veréis que hay numerosos intentos de conexión a este servicio desde IPs desconocidas.
Aparte de las medidas habituales como usar claves seguras o, mejor aún, permitir el acceso ssh únicamente mediante certificados, también podéis usar un programa llamado DenyHosts que examina los registros del sistema e impide el acceso a aquellas IPs que se comporten de forma "sospechosa". En Debian y Ubuntu el programa se encuentra disponible dentro del paquete denyhosts.
Desde hace algún tiempo en Debian (concretamente desde el 23 de octubre de 2007 que salió la versión 0.7.7) el programa apt-get instala los paquetes recomendados junto con las dependencias. Para los que nos gusta mantener el sistema con lo mínimo posible, esta opción puede ser desactivada añadiendo la siguiente línea al fichero /etc/apt/apt.conf o creando un fichero independiente dentro de /etc/apt/apt.conf.d/:
APT::Install-Recommends "false";
Si alguna vez aparece un error (en una página PHP, en un script del sistema, en un correo de cron, etc.) indicando que una tabla de MySQL está corrupta, la siguiente instrucción la reparará:
REPAIR TABLE tabla USE_FRM
Este código se puede ejecutar desde línea de comandos o desde una interfaz tipo Phpmyadmin.
El programa MoonShell permite reproducir vídeos en formato DPG (una variante de MPEG-1) en la consola portátil Nintendo DS. El propio programa viene con un conversor de ficheros de vídeo a dicho formato, pero desgraciadamente éstos no funcionan en Linux.
Hace poco encontré DPGConv, un pequeño script escrito en Python y que hace uso de MEncoder y mpeg_stat para producir ficheros con este formato.
Un pequeño script en Bash como el siguiente:
for i in ../*zip; do unzip $i; done
falla si dentro del directorio hay nombres de fichero con espacios. La forma de evitarlo es sustituir la variable IFS (separados de campos) y hacer que tome sólo los cambios de línea. Para ello, hay que añadir la siguiente línea al principio del script:
IFS=$'\n'
o
export IFS=$'\n'
si estamos en una shell interactiva.
Problema: Se tienen numerosos fragmentos de configuración dentro de un directorio (p. ej., /etc/apache2) y se editan desde línea de comandos usando Vim. Sin embargo, Vim no reconoce dichos ficheros de configuración como lo que realmente son y no resalta su sintaxis (lo cual convierte la tarea de editarlos en un auténtico coñazo).
Solución: Añadir la siguiente línea al fichero ~/.vimrc:
autocmd BufRead,BufNewFile /etc/apache2/* set syntax=apache