domingo, 9 de junio de 2013

Apt-on-pendrive: Script gráfico para la copia de Synaptic

Dado que hoy en día los cd/dvd han sido sustituidos por los pendrives /discos duros externos de gran capacidad, ( ya ni siquiera son necesarios los cd/dvd para instalar una distro ) me parece que el programa Apt-on-cd es un programa algo anticuado...( Apt-on-cd en su dia fue un muy buen programa para tener una copia de seguridad de los paquetes .deb en un cd o dvd ) ya que no se puede usar en muchos pcs actuales que no llevan ya lector de cd/dvd.

En el tema  Copia de seguridad de Synaptic se explica como hacer un script de copia de seguridad de Synaptic ( de las fuentes de software, ppa, y archivos .deb en la caché: /var/cache/apt/archives ) , que se puede guardar en un pendrive, esto podría sustituir a Apt-on-cd...solo faltaría añadirle una interfaz gráfica para que fuera mas atractivo visualmente; buscando como hacer esto, y gracias a la inestimable ayuda de Nestoriano ( http://forums.linuxmint.com/viewforum.php?f=68 )  he logrado hacer un script que puede hacer esto.

-----------------------------------------------------

Script "universal" para crear una copia de seguridad de directorios y archivos:

Tomando este script como ejemplo, y modificándolo  adecuadamente podemos ir creando varios scripts con diversos nombres y diversas acciones de copia de seguridad. Este script, modificando las lineas como se indica mas abajo, se puede adaptar para crear un archivo comprimido .tgz que contenga cualquier directorio o archivo que nos sirva como copia de seguridad, y guardarlo en el directorio que elijamos.

------------------------------------------------------

      #!/bin/sh
zenity --width="350" --info --text "Script para realizar copia de seguridad de xxxxxxx .Eliga el directorio en donde quiera que se haga la copia de seguridad."
repodir=`zenity --file-selection --directory --title="Seleccione un directorio de destino"`
(
echo "15" ; sleep 1
echo "# Empezando a Comprimir " ; sleep 1
echo "30" ; sleep 2
echo "# Comprimiendo 30%" ; sleep 1
echo "45" ; sleep 3
echo "# Comprimiendo 45%,espere..." ; sleep 1
tar zcvf nombre_de_archivo_`date +%d%B%Y-%H,%M`.tgz  /direcciones_que_queremos_copiar
echo "60" ; sleep 4
echo "# Comprimiendo 60%,espere..." ; sleep 1
echo "75" ; sleep 5
echo "# Comprimiendo 75%...ya falta poco" ; sleep 1
echo "90" ; sleep 6
echo "# Comprimiendo 90%...casi acabado" ; sleep 1
echo "# Moviendo el archivo al directorio de destino"
mv nombre_de_archivo_*.tgz $repodir
echo "100" ; sleep 7
echo "# Copia de Seguridad FINALIZADA."
) |
zenity --progress \
title="AptonUSB" \
text="Guardando una Copia de seguridad" \
percentage=0
zenity --width="350" --height="350"  --info --text "La Copia de Seguridad se ha realizado en el directorio $repodir"
zenity --width="350" --height="350"  --info --text "Se eliminan Copias de Seguridad,en $repodir, mas antiguas de 3 dias"
find $repodir apt-synaptic*.tgz -mtime +3 -exec rm {} \;
zenity --width="350" --height="350"  --info --text "!Y esto es todo...¡"
if [ "$?" = -1 ] ; then
zenity --error \
text="Copia de seguridad cancelada."
fi


------------------------------------------------------

En la línea tar zcvf nombre_de_archivo_`date +%d%B%Y-%H,%M`.tgz  /direcciones_que_queremos_copiar, se nos indica el nombre del archivo comprimido .tgz  ( con la fecha en que se crea, en formato dia-mes-año-hora-minuto) y las direcciones de los archivos y/directorios que queremos incluir en el archivo comprimido

En la línea mv nombre_de_archivo_*.tgz $repodir , se indica el nombre del archivo comprimido; debe de ser el mismo que en la línea anterior (solo el nombre del archivo, sin fecha ) ; y en ambas líneas podemos llamar a dicho archivo con un nombre que haga referencia a su  contenido, es decir al tipo de copia de seguridad que contiene.

Las líneas en naranja se pueden modificar a gusto del consumidor para que aparezca otro tipo de comentarios similares durante la ejecución del script.

-----------------------------------------------------

Basándonos en el script "universal" anterior se puede hacer este otro script que nos sirve para crear un archivo comprimido .tgz, (apt-synaptic_fecha.tgz ) , que contiene los directorios y archivos ( /etc/apt/ /var/lib/apt/ /var/cache/apt/ ) que incluyen las fuentes de software y los paquetes .deb que están almacenados en la caché ( directorio /var/cache/apt/ ), y guardarlo en el directorio que elijamos, por ejemplo en un pendrive o disco duro externo.

Script Apt-on-pendrive para crear copia de seguridad de Synaptic ( paquetes y fuentes de software ):

  #!/bin/sh
zenity --width="350" --info --text "Script para realizar copia de seguridad de SYNAPTIC.Eliga el directorio en donde quiera que se haga la copia de seguridad."
repodir=`zenity --file-selection --directory --title="Seleccione un directorio de destino"`
(
echo "15" ; sleep 1
echo "# Empezando a Comprimir " ; sleep 1
echo "30" ; sleep 2
echo "# Comprimiendo 30%" ; sleep 1
echo "45" ; sleep 3
echo "# Comprimiendo 45%,espere..." ; sleep 1
    tar zcvf apt-synaptic_`date +%d%B%Y-%H,%M`.tgz /etc/apt/ /var/lib/apt/ /var/cache/apt/
echo "60" ; sleep 4
echo "# Comprimiendo 60%,espere..." ; sleep 1
echo "75" ; sleep 5
echo "# Comprimiendo 75%...ya falta poco" ; sleep 1
echo "90" ; sleep 6
echo "# Comprimiendo 90%...casi acabado" ; sleep 1
echo "# Moviendo el archivo al directorio de destino"
    mv apt-synaptic_*.tgz $repodir
    echo "100" ; sleep 7
    echo "# Copia de Seguridad FINALIZADA."
) |
    zenity --progress \
      title="AptonUSB" \
      text="Guardando una Copia de seguridad" \
      percentage=0
    zenity --width="350" --height="350"  --info --text "La Copia de Seguridad se ha realizado en el directorio  $repodir"
    zenity --width="350" --height="350"  --info --text "Se eliminan Copias de Seguridad, en $repodir , mas antiguas de 3 dias"
    find $repodir apt-synaptic*.tgz -mtime +3 -exec rm {} \;
    zenity --width="350" --height="350"  --info --text "!Y esto es todo...¡"
    if [ "$?" = -1 ] ; then
    zenity --error \
    text="Copia de seguridad cancelada."
    fi

Usos de Apt-on-pendrive:

El script se debe ejecutar con permisos de root (ejecutándolo desde un administrador de archivos abierto con permisos de root: sudo nemo) . Para descomprimir el contenido del archivo .tgz se debe de hacer abriendo el archivo .tgz con el programa file-roller ejecutándolo con permisos de root ( sudo file-roller ) ,  y descomprimiendo el contenido en el directorio raíz /

El script se puede usar para:
- Instalar los paquetes y fuentes de software de Synaptic en el mismo pc en el que se ha ejecutado el script para recuperar una configuración que se haya estropeado.
- Instalar/duplicar los paquetes y fuentes de software del Synaptic de un pc en otro/s pc que tengan la misma distro y versión.
- Instalar los paquetes y fuentes de software de un pc que si que tiene internet y en el que hemos instalando varios paquetes, en otro pc, o varios, que no tienen conexión a internet.

--------------------------------------

2 comentarios:

  1. Yo estoy buscando alguna alternativa a remastersys que estaba muy bien para hacerte tu propia distro live, pero que desgraciadamente el autor ha abandonado.
    Lo intenté con relinux en Ubuntu 12.04 pero la iso resultante no arrancaba.
    Es una pena porque con mis discos de remastersys he iniciado a muchos amigos en el mundo de GNU/Linux.

    ResponderEliminar
  2. Prueba con Garfio2 https://launchpad.net/~paquetes-tuquito/+archive/universal/+build/1931927/+files/garfio-generic_2.3-4_all.deb

    ResponderEliminar

A la vez que haces un comentario, por favor da una puntuación al tema: malo, normal, bueno o muy bueno.
Gracias.