Backup sencillo pero eficiente

Despues de tener varios sustos (bueno mas que sustos, serían OSTIAS puras y duras y bien dadas xD) con perdidas de archivos, uno se vuelve muy paranoico con la seguridad. Voy a ir poniendo varias medidas que uso como mi propio mini-SGSI (Sistema gestor de seguridad de la información, loool, ahora se le dice así a todo el conjunto, mola mas xD), hoy toca algo clave, backups.
Existe el riesgo de que un usuario malintencionado (como yo mismo o por una falla en la seguridad) borre nuestros queridos ficheros, o que se produzca un fallo físico en el dispositivo, crear backups es algo totalmente necesario. Para la realización de la tarea me plantee varios puntos:

  • Qué consideraba como totalmente necesario (el resultado de esto serán los archivos a incluir en nuestros backups)
  • Debería guardarlo en una carpeta que se encuentre en un disco duro distinto al de origen (para la protección por daño físico)
  • No quería ocupar mucho espacio, pero también quería tener los backups de los últimos 'x' días (esto se soluciona con enlaces duros, es decir, necesitamos un sistema de ficheros que los soporte, ext2 o superior por ejemplo).

#!/bin/bash

DIR_RAIZ=/home/blaxter/Dir_Importante

SNAPSHOT_DIR=/mnt/otroDispositivo/backs/Dir_Importante
LOG_DIR=/var/log/backupDir_Importante

HOY=`/bin/date +%A`
AYER=`/bin/date --date='1 day ago' +%A`
HORA=$(/bin/date +%kh)

if [ ! -d ${LOG_DIR} ]; then
/bin/mkdir ${LOG_DIR}
fi

echo "$(/bin/date): Inicio de la sincronizacion" > "${LOG_DIR}/${HOY}"

/bin/rm -rf $SNAPSHOT_DIR/$HOY
/usr/bin/rsync --delete \
-av \
--numeric-ids \
--link-dest=../$AYER \
"$DIR_RAIZ"/ "$SNAPSHOT_DIR"/$HOY/ \
>> "$LOG_DIR"/resumen_"$HOY"

echo "$(/bin/date): Sincronizacion terminada" >> "${LOG_DIR}/${HOY}"

La gracia del asunto, está en poner este script en el cron (en debian y derivados /etc/cron.daily o editando manualmente las tareas del cron) para que se ejecute diariamente, así tendremos en nuestra carpeta de backups carpetas "Lunes", "martes,..., "Domingo"; con los últimos siete backups, pero solo habrá una copia exacta de los datos en una de ellas y en el resto habrá solo las modificaciones respecto al día anterior (los no modificados serán enlaces duros, es decir, no ocuparan espacio adicional :)).

Lo puedes descargar de aquí. Para cualquier duda, comentarios ;).

I use Ubuntu

¿Por qué la gente asume que un ordenador se tiene que "colgar"?

¿Por qué narices habría que reiniciar un SO para que entonces (con suerte) vayan las cosas que antes no iban, para luego repetir el proceso en un tiempo x?

¿Y reiniciar despues de instalar actualizaciones, por qué?

¿Por qué tener que estar pendiente de virus? ¿y de spyware? ¿y de rootkits? ¿y de malware?

¿Y por qué se apaga solo el ordenador?

¿Por qué tengo que instalar programas adicionales despues de instalar el SO, pues sino no puedo hacer casí nada?

¿Por qué va cuando quiere y como quiere?

La respuesta es sencilla, usa un SO decente. Windows no lo es.

Esto viene despues de ver esta página donde sale gente que se ha grabado en video diciendo que usan ubuntu :D hay algunos curiosos.

Revolución en Linux desktop!

Hace casi ya un mes, Novell anunció XGL, un fork (un fork del 'producto A' es un nuevo producto que parte de 'A' y realiza modificaciones/mejoras/variaciones para formar un nuevo producto) de X.org que incorpora una capa por encima que usa openGL para añadir efectos realmente sorprendentes.

Lo mejor es ir a la página del anuncio y ver los videos que hay, increibles.

Si estas un poco al tanto de las noticias en informática, posiblemente no te esté diciendo nada nuevo, pues tiene ya su tiempo esta noticia, y además hubo mucho revuelo por todo Internet.

Pero ayer, el proyecto Fedora anunció una de las mejoras que incorporará Fedora core 5 (el proximo fedora vamos :P) esperada para dentro de un mes aproximadamente. Esta mejora permite realizar efectos gráficos para el escritorio usando openGL (sí, lo mismo que he dicho antes para XGL), si vemos los videos no parecen tan espectaculares como XGL, pero posiblemente habrá muchos mas efectos.

Ahora comparemos ambos XGL (de novell) y AIGLX (de fedora). El primero es un sustituto de todo el servidor gráfico (las X para los friends), y el segundo es un modulo adicional para las X.org que todos usamos actualmente (si no las usas cierra esta ventana, me caes mal).

¿Que es mejor? , en un principio diría que es mejor la idea de fedora, pues hacer un fork de las X no es nada trivial, y realizar un modulo es bastante mas sencillo que lo anterior. Es decir, en un principio debería ser mas estable la mejora de fedora, pero, detras del proyecto XGL esta Novell, si hay una compañia que pongo en el podium, esa es Novell (bueno la mejor es Ximian, la cual la compró Novell, así que ahora Novell es the best). La mejor manera de decir qué es mejor, es probandolas :), así que dejaré este tema medio abierto hasta el lanzamiento de fedora core 5. Emoción...intriga...misterio...

Script bitrateFind

Hace un par de meses hice un script para convertir música mp3 a un bitrate elegido por el usuario, ahora, dos meses despues, me encuentro con el problema de que no paro de añadir música a la colección, y al final no se que discos tengo a 128 (el bitrate que quiero) y cuales no.

Mirar cada disco uno a uno, no es una solución, pues me pegaría toda la tarde. Así que, como me aburro mucho estos días, esta mañana me he puesto ha hacer un script para que me diga que directorios tienen mp3's con bitrate mayor a uno que le indico. Además como me gustan mucho las estadisticas, he hecho que salgan también unas estadisticas globales de los bitrates.

El uso del script es:

bitrateFind [-r|--round] Directorio_base

El parametro round significa si las estadisticas finales se darán redondeadas o no (se refiere a los bitrates, pues los mp3s con VBR al leerlos dan como valor de su bitrate la media, entonces si no se redondea, quedan muy feas las estadisticas xD).

Un ejemplo de ejecución sería este:

[blaxter@helicon]:~/C/BlaxMusic/Trapt$ bitrateFind --round .
*Analizando los mp3's del directorio /media/C/BlaxMusic/Trapt
Analisis: 100% [============================]D 0h00m00s

Dirs with mp3's with bitrate > 128
./Trapt
./Someone In Control

Con bitrate 128: 1 (4.3 %) ===>
Con bitrate 192: 11 (47.8 %) =============================>
Con bitrate 256: 11 (47.8 %) =============================>
-Un total de 23 mp3s analizados

Y otra ejecución podría ser esta :D:

[blaxter@helicon]:~/C/BlaxMusic$ bitrateFind --round .
*Analizando los mp3's del directorio /media/C/BlaxMusic
Analisis: 100% [============================]D 0h02m18s

Dirs with mp3's with bitrate > 128
./Second - Invisible
./Evanescence/Fallen (Brazil Edition)/cd2
./Evanescence/Performance Live/Live on DC101 24-02-03
(...aqui van muchos directorios mas...)
./Foo Fighters/Foo Fighters/(2003) One By One (Limited Edition)
./Foo Fighters/Foo Fighters/(2003) One By One (Limited Edition)/Bonus CD

Con bitrate < 112: 28 (0.6 %) ->
Con bitrate 112: 28 (0.6 %) ->
Con bitrate 128: 2810 (64.9 %) =======================================>
Con bitrate 160: 89 (2.1 %) =->
Con bitrate 192: 1022 (23.6 %) ==============->
Con bitrate 256: 294 (6.8 %) ====->
Con bitrate > 256: 56 (1.3 %) =>
-Un total de 4327 mp3s analizados

Parece que voy a tener que usar el otro script un poco xD. Pero al menos ahora ya se que tengo que convertir ;).

Aquí para descargarlo

Desinstalando librerías

Muchos se preguntan el porqué hay que usar aptitude en vez de apt-get (o frontends de este, como synaptic por ejemplo). Una de las razones es que cuando instalas un programa que requiere dependencias, aptitude se guarda esos datos, para que si instalas el programa X (aptitude install X), el cual requiere de X_1, ..., X_n paquetes nuevos, te los bajará e instalará sin problemas, pero cuando indiques que quieres desinstalar el programa X (aptitude purge X), también se eliminarán los paquetes X_1, ..., X_n (solo si posteriormente no has instalado algún otro paquete que requiere de algún X_1, ..., X_n claro).

Entonces la cuestión es, y si he usado alguna vez apt-get o synaptic :-/, pues no problem, tienes un programa que detecta librerias "huerfanas", estas son librerias que no son dependencia de cualquier otra (CUIDADO!), esto puede significar dos cosas:

  • Paquete que nos sobra y podemos desinstalar
  • Paquete solitario, que hace su función, pero no necesita de otros, ni otros necesitan de él (por ejemplo codecs)

Para solucionar esto podemos usar un programa muy util llamado "deborphan" (si no lo tienes ya sabes, aptitude install deborphan). Al ejecutar deborphan nos dará la lista de paquetes huerfanos, los cuales ya podemos eliminar (aptitude purge), pero como ya he comentado antes, posiblemente de esa lista, algún paquete NO querremos eliminarlo.

HowTo: Smart Battery

En mi portatil tengo ahora SuSe 10 y, como en ubuntu, he encontrado el problema de la batería (smart batteries, que son nuevas y aún no esta soportado por el kernel y tenemos que hacerlo a mano). Para solucionarlo, hacemos lo siguiente:

-Descargamos el compilador IASL de aquí.

$ tar xzf acpica-unix-20060127.tar.gz
$ cd acpica-unix-20060127/compiler

-Compilamos el compilador, para ello necesitamos flex, bison y gcc. Posiblemente ya los tendrás instalados, sino es así, entra en YAST e instalalos, no creo que tengas problemas en eso ;).

$ make
Habremos generado un fichero ejecutable llamado iasl!

-Descargamos Smart Battery System de aquí y descomprimimos.
-Copiamos iasl (el fichero generado antes) a la carpeta que ha salido al descomprimir el fichero anterior.
-Entramos con un terminal en ese directorio como root:

# cat /proc/acpi/dsdt > dsdt
# iasl -d dsdt
# patch < ESTO_SEGUN_TU_PORTATIL-sbs-cm.diff
# iasl dsdt.dat
# mv DSDT.aml /etc/

SUSE 10
-Editamos (tambien como su) /etc/sysconfig/kernel y cambialos la linea ACPI_DSDT="/etc/DSDT.aml"
-Editamos /boot/grub/menu.lst y ponemos en nuestro arranque la opción ec_burst=0x00
-Como root también ejecutamos /sbin/mkinitrd
-Reiniciar y ya funcionará perfecta ;).

Ubuntu 5.10
# mv DSDT.aml /etc/mkinitrd
(En ubuntu 5.04 e inferiores se tenía que llamar DSDT a secas, sin el .aml)
# dpkg-reconfigure linux-image-'uname -r'

eof

Creative Commons License Esta obra está bajo una licencia de Creative Commons.

Este blog funciona gracias a WordPress con el theme GimpStyle diseñado por Horacio Bella y adaptado por un servidor.
Feed entradas