[debian] como respaldar los archivos de un paquete?

Espero no ser el único “loco” en el mundo que en algun momento u otro de la vida, entendio que debia hacer un respaldo de todos los archivos de un paquete especifico… si es asi, simplemente ignoren este post y yo me voy a internar n.n

Bien, en mi caso, bastó con ejecutar este “oneline script” como me gusta llamarlo 🙂
Solo deben cambiar el texto “NOMBREDELPAQUETE” por el nombre del paquete dado. Por ej: wget

for line in $(dpkg -L NOMBREDELPAQUETE); do [[ -d ${line} ]] && mkdir -p "bkp/${line}" || cp ${line} "bkp/${line}"; done

Analisemos esto un poco…

  • dpkg -L NOMBREDELPAQUETE:
    devolvera una lista con todos los archivos/carpetas que un paquete dejo en nuestro sistema
  • for line in $(comando); do … cosas …; done:
    esto es una estructura de control, es decir controlara el comportamiento de nuestro “script”. Al ser un “for”, en este caso todo el texto que esté entre el “do” y el “done” se ejecutaran para cada linea que devolvió (ver el item anterior para saber que devuelve) el comando que esta entre los signos $(). Para los interesados “line” es una variable, la cual se usará dentro del loop (“for”) y su contenido varia en cada repeticion (recordemos que iteramos sobre cada elemento que devolvio el comando del primer punto de esta explicacion).
  • [[ -d ${line} ]] && …cosas… || … otras cosas:
    Adivinen… otra estructura de control. Esto mis queridos/as es un “if en una sola linea”. Noten que la condicion se coloca entre dos signos de “[[” y “]]”. Luego de los “&&” se coloca las instrucciones cuando la condicion se cumple. Luego de “||” se colocan las instrucciones para cuando la condicion NO se cumple.
  • Dependiendo si lo que tenemos en la iteracion (repeticion) es una carpeta o no, creamos una carpeta dentro de bkp (la carpeta donde dejaremos el respaldo) o simplemente copiaremos el archivo a la carpeta previamente creada.

Resumiendo todo…

Se obtendremos un resplado de los archivos que un paquete dejo en nuestro sistema, dentro de una carpeta “bkp”. Notaran que esto deja una estructura de arbol ordenada dentro de “bkp”.

Consideraciones: No lo ejecutes con un nombre de paquete que no existe en tu sistema 😉

Muy bien, eso es todo… espero que a alguien le sea util.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s