Script en Bash para hacer un backup de tus cosas importantes

Mis padres y conocidos suelen bromear diciendo que yo soy una ‘mole’ con la tecnología, que he roto más dispositivos o componentes de PC que cualquier otro. Lo curioso es que no se equivocan 😀

No lo he hecho a propósito, pero en mi poder se han roto aproximadamente 5 o 6 HDDs, por lo que la pérdida de datos para mí es un problema serio LOL!!

Entonces, para evitar perder datos realmente importantes, información sensible para mí lo más elemental sería copiar estos datos, estas carpetas importantes hacia otro lugar no? Pero sucede que lo que yo deseaba salvar no era ni una ni dos carpetas, sino varias más… y por si fuera poco soy demasiado vago como para navegar por mi Carpeta Personal y otras seleccionando carpetas para copiarlas a otro lugar jajajaja, en vez de esto, para ahorrar tiempo y esfuerzo, hice un pequeño y simple script que me permitiera al ejecutar salvar todo lo que yo desee 😀

¿Qué hace específicamente este script?

  1. Entra en una carpeta donde trabajaré o carpeta base.
  2. Dentro de ella crea una nueva carpeta, el nombre de esta será la fecha actual (por ejemplo: 2012-07-08).
  3. Copia configuraciones de Firefox, Chromium, Opera, KMail (+contactos y nuestros emails), Rainlendar2, Pidgin, Kopete, Konversation, KWallet… o sea, copia una serie de archivos y/o carpetas que nosotros necesitamos salvar. El qué salvar es completamente modificable, nosotros podemos cambiar esto a gusto.
  4. Exporta alguna base de datos que tengamos, en mi caso puse dos bases de datos a salvar (dbtest y bnc). Para esto el servidor MySQL tiene que estar iniciado.
  5. Luego borra el caché nuestro de Firefox y Opera que copiamos, pues no deseamos salvar el caché.
  6. Por último comprime en .RAR y con un password que nosotros queramos todo esto.
  7. También si lo queremos, en vez de comprimir en .RAR podemos comprimir todo en .TAR.GZ, les dejé la línea comentada en caso de que deseen usar esta.

Script de backup personal

Deben descargarlo, darle permisos de ejecución y listo.

Ah, en la carpeta personal de ustedes tienen que tener una carpeta llamada WORKING (todo en mayúsculas), pues así lo uso yo.

No se preocupen, el script lo expliqué paso a paso con comentarios, si alguien desea hacerle cualquier tipo de cambio, si desea modificarle algo para satisfacer alguna necesidad… solo me lo dice, con mucho gusto hago los arreglos que deseen 🙂

Saludos y espero les sea de utilidad.


23 comentarios

  1.   marcpv89 dijo

    Cuando lei el nombre del artículo sabia que eras tú, y tienes muy buena razón, ya que tienes un doctorado en romper componentes de tu PC (recuerda tu micro). Me viene muy bien, sobre todo con el virus que tengo en casa que comienza con h y termina en a. (hermana)

    1.    KZKG^Gaara dijo

      JAJAJAJA sí … pero eehh!! el micro siguió funcionando 😀
      También tengo teclados y mouses en mi historial LOL!

      Venga, si tu hermana es un angelito… esa niña es de lo más buena, lo que tú le tratas mal.

  2.   Rayonant dijo

    Muy útil en verdad, lo modificare para mis necesidades pues de vez en cuando también hago mis respaldos de datos importantes, además esta perfectamente comentado por lo que las posibilidades son inmensas, por ejemplo en mi caso tengo un disco externo para este fin por lo que $HOME/WORKING pasará a se /media/disco_externo. Muchas Gracias!

  3.   msx dijo

    Está bueno, pero yo usaría -y abusaría de- Rsync y 7zip en vez de RAR.

    De hecho ayer me backupeé la / (con fsarchiver), ~/.kde4 y el sector de arranque (uso GRUB Legacy así que con dd if=/dev/sda of=MBR bs=1 count=512 me alcanza) y metí todo en un DVD que ya está archivado.

    Ahora que tengo la máquina funcionando como quiero con el sistema tuneado al máximo y KDE que anda impecable con Ulatencyd y todos los demás tweaks para las placas híbridas de video, mother, HD, cpu, swap, etc., si mando moco y rompo esta instalación abandono Arch hasta el 2025 por lo menos, no creo que tenga la entereza anímica para volver a hacer toooodo lo que le hice al sistema para dejarlo andando asi O_o

    Eso sí, ya llevo un uptime de 12:24 horas seguidas -estoy hechando raices en este sillón- y la notebook está helada, prueba de que se puede usar perfectamente el driver opensource RadeonHD sin hechar mano del privativo Catalyst – siempre y cuando no necesitemos la aceleración 3D que provee este último.

    Salu2

    1.    KZKG^Gaara dijo

      Opté por usar simplemente cp en vez de rsync porque es una simple copia lo que deseo hacer, además si alguien quiere modificar el script… imagino que le será más simple si lo ponía con cp en vez de con rsync 😀

      1.    Hugo dijo

        Yo suelo usar directamente tar -rzvf para hacer salvas rápido. Si lo que quiero es que se comprima bien, uso 7za a -mx=9 -ms=on. Con rsync hay que tener cuidado, porque si se utiliza mal puedes destruir información.

  4.   croto dijo

    Muy bueno KZKG^Gaara! Gracias por detallar todas las funciones. Hace poqutio que empece con Linux(Debian) y veo que los scripts son fundamentales para automatizar tares, ahora me voy a armar uno para instalar debian desde cero pero tengo que aprenderme varias cosas, sobre todo el comando GREP para modificar .conf.
    Una duda: Que metodos de Backup/Sincronizacion uttilzan? He viste que algunos usan cpio, rsync…alguien utiliza Wuala para sincronizar la carpeta HOME?
    Saludos!

    1.    KZKG^Gaara dijo

      Hola que tal 😀
      Bueno, si buscas sobre bash… scripts, pásate por acá, que hemos puesto montón de scripts y cosas: http://blog.desdelinux.net/tag/bash/

      Yo en mis scripts uso cp, porque usando cp y además programando funciones y ciclos, logro que todo funcione mucho más que bien 😀
      No obstante, rsync es de veras genial, sirve para muchas cosas más que solo hacer backups 😉

      Queda por parte de cada usuario saber cuándo usar uno o cuando usar otro.
      Saludos

      PD: Nada hombre, un placer ayudar … describir cada paso no me molesta si así ayudaré a otros.

      1.    croto dijo

        Tengo para entretenerme! Tambien voy a revisar los ¨PASTE¨para aprender.

        1.    KZKG^Gaara dijo

          Uff ahí hay un montón sí jajaja.

  5.   AurosZx dijo

    Muy bien, aunque yo hago backups enteros del disco con dd xD

    1.    Hugo dijo

      Hombre, para eso mejor usar clonezilla, jejeje.

  6.   Aleph dijo

    Para las bases de datos, te recomiendo mysqlhotcopy, pues con mysqldump en una bd grande, que te tome tiempo respaldar y que durante ese tiempo le introduzcan cambios, lo que vas a obtener va a ser un respaldo corrupto que no te va a servir. mysqlhotcopy, te aplica un lock tables antes del respaldo, lo cual te garantiza que lo que salves sirva.

    1.    KZKG^Gaara dijo

      Interesante sí.
      En este ejemplo el backup es personal, o sea, en localhost todo… por lo que la DB no debería sufrir cambios mientras se está haciendo el dump. No obstante, en backups de hostings o servidores, sí puede pasar.

      Intesante el tip sí 😀
      Thanks.

    2.    Hugo dijo

      Interesante, gracias por el tip. hasta ahora no había necesitado hacer salvas de bases de datos porque no tenía nada crítico, pero aparentemente pronto lo voy a necesitar.

  7.   Elynx dijo

    De lujo hombre, si que eres un hombree valioso!.

    Saludos y muchas Gracias por tan grandiosa Utilidad!

    PD: Algunos tutoriales para aprender a programar en bash en linux?.. Tambien tengo una duda, con crontab no podemos hacer este tipo de tareas en un X tiempo?, es decir, programar un script q haga backups cada X tiempo que le hayamos asignado?

    1.    KZKG^Gaara dijo

      Gracias jajajaja.
      Sobre los tutoriales, mmm hemos puesto varios artículos sobre bash, y 2 o 3 son para novatos o principiantes: http://blog.desdelinux.net/tag/bash/

      Y síp, si en el crontab ponemos que ejecute una órden/tarea a X hora lo hará, solo que este script son vaaarrriiiasss tareas a ejecutar, poner todo esto en el crontab es una barbaridad jeje.
      Lo que se hace es crear un script (como este), y luego en el crontab le configuramos para que ejecute el script 😉

  8.   Xose M dijo

    muchas gracias,
    en mi caso es precisamente para automatizar las copias de las bases de datos donde me será útil 😉

    mái info sobre cron en https://help.ubuntu.com/community/CronHowto . Se puede usar lo de hourly, monthly,…

  9.   nonamed dijo

    grsync r00lz, gracias a el puedo estar tranquilo

  10.   vicen dijo

    No puedo acceder al links del script lo podeis volver a poner? GRACIAS

    1.    KZKG^Gaara dijo

      Mis disculpas, fue un error en nuestro servidor que hizo inaccesible el link, acá lo tienes de nuevo funcionando bien 😀 -» http://paste.desdelinux.net/4482

  11.   Rodrigo prieto dijo

    ¡gracias por el script! como siempre muy util!!

  12.   Paco dijo

    podrias volver a subir o pasarme el script??
    ya no se puede descargar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.