Como hacer backups completos en linux

A veces, nos encontramos con la necesidad de hacer una copia de seguridad a un equipo linux, ya sea desktop o server, podemos backupear directorios importantes, o hacer un full backup de todo el sistema.

Siempre es recomendable hacer backups, de todo, aunque no sea lo mas divertido hacerlos, créeme, la perdida de información es una de las peores catástrofes en el mundo informático, no solo la pérdida de datos en una DB, sino también podemos perder código/scripts/diseños etc, que nos demandará tiempo volver a escribir.

La forma más fácil de hacer un backup de forma manual, es con el comando tar que nos crea un archivo comprimido y es fácil de usar.

La sintaxis es la siguiente:

tar [parámetros]

Las operaciones mas usadas son:

  • -z: Comprime usando gzip
  • -c: Crea el archivo
  • -v: Verbose mode. (Muestra el progreso mientras se crea el archivo)
  • -f: Para indicar el nombre del archivo
  • -p Conserva los permisos de los archivos
  • -x Extraer

Ejemplo de uso:

Para comprimir un directorio completo, usamos lo siguiente:

tar -zcvf backup-home.tar.gz /home/*  –> Hace un backup de todos los archivos que estan en el directorio home.

Backup del sistema completo:

Si queremos hacer un backup completo del sistema, para que en caso de una perdida total podamos restaurar nuestro servidor de manera completa, datos/programas/configs…  TODO…  debemos ejecutar esto:

tar cvpzf /backup-full.tar.gz –exclude=/proc –exclude=/lost+found –exclude=/backup-full.tar.gz –exclude=/mnt –exclude=/sys –exclude=dev/pts /

Importante: la barra del final “/” no es un error, eso le dice haga el backup desde el root “/”.
Todos esos “exclude” son, como su nombre lo dice, para excluir directorios que el sistema llena con archivos dinamicos, que van a producir errores a la hora del backup, y no son importante.

Como restaurar los backups:

Para restaurar un backup, se utiliza el comando -x

tar -zxvpf /fullbackup.tar.gz  –> extrae los contenidos en el directorio actual, conservando los permisos (-p) .

tar -zxvf backup-home.tar.gz  –> extrae los contenidos en el directorio actual.

tar -zxvf backup-home.tar.gz /home –> extrae los contenidos en /home.

Instalar paquetes en versiones viejas de Ubuntu

A veces nos encontramos con el caso de querer instalar algunas aplicaciones en versiones de ubuntu cuya vida llego a su fin.

En mi caso necesitaba instalar openssh-server en un ubuntu Gutsy.

El problema, es que al hacer apt-get update salen errores diciendo que las URL no existen. (404)

La solución es modificar el sources.list para poder descargar la lista de paquetes desde el servidor “old-releases” de ubuntu.

Paso a Paso:

sudo nano /etc/apt/sources.list

Alli, reemplaza todos los

con

Graba el archivo con F2

sudo apt-get update

y listo!!!

sudo apt-get install openssh-server

Hamachi en linux. (Ubuntu Server) Solución

Actualizado el 17/7/10

Despues de varias horas de investigacion, encontre que NO hay una “solucion”…   que haga que todo funcione 100%, pero logre hacerlo andar a un 90% al menos.

Logmein, no ha invertido nada en seguir desarrollando  hamachi para linux. Es el segundo producto de logmein al que le hacen esto, logmein para windows mobile, deja de funcionar a partir del 6.5

Bien, mas alla de todo eso,  vamos al grano.

El problema es que siguiendo la instalacion de hamachi como en este tutorial: http://www.supware.net/HamachiUbuntuHowto/ al principio anda todo bien, se conecta y todo, pero si desde una red externa tratamos de acceder, vemos el server pero no podemos hacer ping, ni conectarnos por ssh, ni nada. inclusive a veces aparece como “conectando”  y se queda asi permanentemente…

Probe con softwares como OpenVPN y Neorouter que hacen cosas parecidas (VPN) pero no me convencieron.

entonces, opte por reinstalar hamahi, con una interfaz grafica, con un script que anda dando vueltas pro ahi… para mi sorpresa, la interfaz grafica, soluciono los problemas…  la verdad no se porque la instalacion convencional no funcionaba…. pero este script si funcionó.

Para instalar hamachi con interfaz grafica solo basta con los siguientes pasos:

sudo apt-get remove hamachi
Esto es solo si teniamos instalado hamachi, para desinstalarlo.

Y ahora descargamos el script, le damos permisos de ejecucion, y lo ejecutamos

wget http://webupd8.googlecode.com/files/hamachi-install-ubuntu-1.0.2
sudo chmod +x hamachi-install-ubuntu-1.0.2
sudo ./hamachi-install-ubuntu-1.0.2

Si todo andubo bien, con solo poner hamachi-gui en la linea de comandos, se ejecutara hamachi con la interfaz grafica antigua de windows.

Cabe aclarar que para correr esta interfaz hace falta algun servidor X. Yo tengo FluxBox que es muy liviano y anda muy bien.

SOLO me queda una sola ccosa… el unico problema es que cuando se corta la conexion a internet, no se vuelve a reconectar automaticamente.

Si alguien sabe como solucionar eso, bienvenido sea!!

Actualización:  entontré, este script, en computarz.blogspot.com que es un watchdog para hamachi, es decir, este script mantiene al hamachi online!!!

Lo modifique un poco para que andubiera bien en Ubuntu Server, el script es el siguiente:

#!/bin/bash

scriptname="<code>basename \"$0\"</code>"

function command_pids {

IFS='
'


RES=""

for p in <code>ps xo pid,command | grep "$1"</code>; do

IFS=' ' hampid=( $p )

pid=${hampid[0]}

if [ ".<code>basename ${hampid[1]}</code>" == ".hamachi" ]; then RES="${RES} $pid"; fi

done

echo $RES;

}

function hamachi_force_terminate {

hamachi stop &gt;/dev/null

sleep 1

for ham_pid in $( command_pids hamachi ); do

kill -9 $ham_pid

done

}

hamachi_running=1

if [ <code>echo $( command_pids hamachi ) | wc -w</code> -eq 0 ]; then

hamachi_running=0;

#echo "count not detect running hamachi"

fi

if [ <code>ip r | grep default -c</code> -lt 1 ]; then

# No internet gateway, exiting!

exit 1

fi

hamachi_online=<code>hamachi list | egrep '\* [0-9]' | awk '{print $2}'</code>

count_unreachable=<code>hamachi list | egrep 'x [0-9]' | wc -l</code>

ping_ok=1

for IP in $hamachi_online; do

ping -c 2 $IP &gt;/dev/null

if [ $? -ne 0 ]; then

echo "ping $IP failed!"

hamachi list | grep $IP

ping_ok=0;

fi # if first ping fails then ping is not OK!

break;

done

if [ $hamachi_running -ne 1 -o $count_unreachable -gt 0 -o $ping_ok -eq 0 ]; then

echo "restarting hamachi: running $hamachi_running unreachable $count_unreachable ping $ping_ok"

if [ <code>pgrep tuncfg | wc -l</code> -eq 0 ]; then sudo /sbin/tuncfg; fi

hamachi_force_terminate

hamachi start

CNT=1;

echo -n "Logging in... " ;

while [ <code>hamachi login | grep -c failed</code> -eq 1 -a $CNT -lt 100 ]; do

echo -n "$CNT ";

let CNT=$CNT+1;

sleep 2;

done;

sleep 2;

echo

hamachi get-nicks

#else

#echo "hamachi is online"

fi

Este script se encarga de todo, simplemente lo añadimos a cron para que se ejecute cada x tiempo y le damos permisos de ejecución:

sudo chmod 777 hamachi_watchdog.sh
sudo crontab -e

Seleccionamos un editor y añadimos

*/5 * * * * $HOME/hamachi_watchdog.sh

Siendo por supuesto hamachi_watchdog.sh el nombre y $HOME la ruta de nuestro script!!

Tambien hay que añadir una linea en visudo, para que el tuncfg funcione sin sudo es decir sin necesitar permisos root para que lo pueda ejecutar cron correctamente, entonces hacemos:

sudo visudo

y añadimos la linea:

%admin ALL=NOPASSWD: /sbin/tuncfg

Con eso el script funciona a la perfeccion.

Saludos

Reparar InnoDB en Ubuntu…

Errores con InnoDB en Ubuntu

Muchas veces, nos encontramos queriendo hacer una Tabla para una Base de datos  MYSQL en Ubuntu con claves foraneas, y nos damos por sorpresa que InnoDB no esta activado.

Lo primero que cualquier persona hace es: Google–> ¿Como activar InnoDB en Ubuntu?    a lo que Google responde… que hay que editar el archio de configuracion, comentando la linea que dice Skip-InnoDB, y reiniciando el servicio de mysql…

PERO AVECES, ESO NO FUNCIONA, como lo fue en mi caso  Mysql, sigue iniciando con InnoDB desactivado!

Ni siquiera ningun mensaje de error me tira…

el problema radica en  los logs de InnoDB. al iniciar de forma incorrecta, se genera un LOG CORRUPTO, que sencillamente, no deja que se inicie InnoDB.

solucion:

ir hasta la carpeta:

<strong>/var/lib/mysql</strong>

y eliminar por completo los siguientes archivos:

<strong>ibdata1 </strong>
<strong>ib_logfile0</strong>
<strong> ib_logfile1</strong>

despues reinicias mysql con la siguiente linea:

<strong>sudo /etc/init.d/mysql start</strong>

Y LISTO ahora InnoDB va a funcionar perfectamente!