De todas maneras el contenido de este artículo es útil para la mayoría de distribuciones basadas en linux.
La herramienta tar nos permite realizar backups, e incluso restaurarlos, mientras nuestro sistema se está ejecutando.
Es una buena idea adquirir privilegios de root para poder acceder a todos los ficheros en el sistema, se puede usar para ello el comando sudo:
$sudo tar cvzpf /home/Backup.tgz --same-owner --exclude=/home/Backup.tgz --exclude=/home/error.log --exclude=/proc/* --exclude=/media/* --exclude=/dev/* --exclude=/mnt/* --exclude=/sys/* --exclude=/tmp/* / 2>/home/error.log
Opciones del comando TAR y argumentos
c crea el backup usando tar.
v activa el modo "verbose", mostrando mucha información.
z comprimirá los datos utilizando el formato gzip.
p preserva los permisos de los ficheros.
f manda la salida a un fichero en lugar de a la salida estandar.
Después de la opción f, es necesario escribir el nombre del fichero donde se almacenará el backup.
ej:
tar cvzpf /home/Backup.tgz
es correcto, perotar cvzfp /home/Backup.tgz
es incorrecto./home/Backup.tgz
es el nombre que le damos al fichero de backup.--same-owner preserva los dueños de los ficheros. Ejecutando tar como root no sería necesaria porque es la opción por defecto para el usuario root.
EXCLUYENDO FICHEROS DEL BACKUP
--exclude esta opción nos da la posibilidad de excluir ficheros y directorios de nuestro backup.
--exclude=/home/Backup.tgz --exclude=/home/error.log
Evita que el fichero de backup y el log de errores sean almacenados.--exclude=/proc/* --exclude=/dev/* --exclude=/sys/*
Éstos son directorios virtuales por lo que no los almacenaremos.
NOTA: La diferencia entre --exclude=/proc/* y --exclude=/proc es que en el primer caso almacenará el directorio proc vacío, y en el segundo ni siquiera almacenará el directorio proc.
--exclude=/tmp/*
/tmp es un directorio temporal, y es borrado cada vez que arrancamos el sistema, así que no lo guardaremos en el backup tampoco.
--exclude=/mnt/* --exclude=/media/*
Si sólo quieres guardar el sistema principal, y no lo demás que hayas montado, entonces deberías excluir esos diretorios.
¿QUÉ DIRECTORIOS EXCLUIR?
Para tener varias ideas acerca de qué directorios necesitas, puedes:
* Ejecuta los comandos mount o df, para saber qué ficheros y particiones están actualmente montadas en tu sistema. p.ej:
$ mount
$ df -h
* Leer el Filesystem Hierarchy Standard (FHS) que cuenta el significado de la mayoría de los directorios de usuario y sistema para los sistemas basados en unix.
* Leer Linux System Directories and their Filesystems.
NOTA: La manera más fácil de realizar un backup del sistema es iniciando desde un live-cd o live-usb, entonces se monta la partición que se quiere guardar en el backup. De esta forma no tenemos que preocuparnos de qué ficheros excluir, etc.
LOG DE ERRORRES
2>/home/error.log
redirecciona la salida estandar de error al fichero error.log para que podamos averiguar si han ocurrido errores importantes durante el backup.Normalmente aparecen algunos warnings sobre algunos sockets que no se almacenan y la no inclusión de / al principio de los ficheros. Estos errores se pueden ignorar tranquilamente.
RESTAURANDO EL SISTEMA DESDE EL BACKUP
Ejecuta:
$sudo tar xvzf /home/Backup.tgz -C /
SI RESTAURAS EL BACKUP EN OTRA PARTICIÓN O MÁQUINA DIFERENTE:
* Acuérdate de cambiar el fichero /etc/fstab en la copia restaurada a los nuevos valores que sean correctos.
* También asegúrate que la copia restaurada tiene los drivers necesarios para el nuevo hardware.
* Al final configura correctamente el gestor de arranque (bootloader).
TESTEAR EL FICHERO DE BACKUP
Para testear si el fichero de backup no tiene errores ejecuta este comando:
$tar tvzf /home/Backup.tgz
REALIZAR EL BACKUP VIA NETWORK
Mandaremos el fichero de backup a través de la red. Vamos a explicar dos maneras de hacerlo:
* usando la herramienta netcat.
Los bytes se mandan sin cifrado.
No necesita un servidor previamente instalado, lo configuramos al vuelo.
* usando la herramienta ssh.
Necesita un servidor de ssh previamente instalado.
Proporciona cifrado en la comunicación.
Comando más simple.
Gestiona la conexión.
Tenemos dos ordenadores:
- Ordenador LOCAL con dirección IP_local. El contenido de este ordenador será guardado en el backup.
- Ordenador REMOTO, con dirección IP_remota. En este ordenador guardaremos el fichero de backup.
USANDO LA HERRAMIENTA NETCAT
Primero en el ordenador remoto lanzar el netcat en modo servidor:
$nc -l -p 6000 >/home/Backup.tgz
Ese comando comienza a escuchar en el puerto 6000 y guarda los datos que recibe en el fichero /home/Backup.tgz
Segundo en el ordenador local:
$sudo tar cvzp --same-owner --exclude=/home/error.log --exclude=/proc/* --exclude=/media/* --exclude=/dev/* --exclude=/mnt/* --exclude=/sys/* --exclude=/tmp/* / 2>/home/error.log | nc -w 3 IP_remota 6000
NOTA: Hemos borrado las opciones f y --exclude=/home/Backup.tgz porque los datos que genera tar son enviados a la salida estandar en lugar de a un fichero.
Comienza el backup, los datos son enviados a través de la red y almacenados en el ordenador remoto.
NOTA: Es necesario lanzar primero netcat en modo servidor si no, dará un error de conexión.
USANDO LA HERRAMIENTA SSH
Dependiendo de dónde esté instalado el servidor de ssh tenemos dos posibilidades:
servidor ssh en el ordenador remoto: (Ejecutamos este comando en el ordenador local)
$sudo tar cvzp --same-owner --exclude=/home/error.log --exclude=/proc/* --exclude=/media/* --exclude=/dev/* --exclude=/mnt/* --exclude=/sys/* --exclude=/tmp/* / 2>/home/error.log | ssh IP_remota "cat - > /home/Backup.tgz"
servidor ssh en el ordenador local: (Ejecutamos este comando en el ordenador remoto)
$ssh IP_local "sudo tar cvzp --same-owner --exclude=/home/error.log --exclude=/proc/* --exclude=/media/* --exclude=/dev/* --exclude=/mnt/* --exclude=/sys/* --exclude=/tmp/* / 2>/home/error.log" > /home/Backup.tgz
Más información en los foros de ubuntu:
BackupYourSystem using Tar
BackupYourSystem
TRADUCIDO DE:
Backup your system using TAR
ola que tal, quisiera saber, como puedo hacer despues de crear un backup guardarlo en una memoria usb o en cd, usando debian 5...grax
ResponderEliminarHola Arrobaxxx,
ResponderEliminarsi has creado el fichero BAckup.tgz puedes simplemente copiarlo en la memoria usb.
Si lo que quieres es recrear el sistema en una memoria usb, puedes crear las particiones adecuadas en el usb (sistema y swap) y descomprimir el backup allí.
Este sistema funciona, pero tiene el inconveniente de acortar la vida de la memoria usb debido a las reescrituras.
Saludos,
Vicente.
justo lo que buscaba, gracias.
ResponderEliminarun saludo