Feb

22

By Ismael Puerto

1 Comment

Categories: General

Tags: , , ,

VTL en Linux

Si os preguntáis que es una VTL os lo resumo a grandes rasgos, conoceréis la típica librería de cintas, bien, pues una VTL emula esa librería de cintas. La ventaja es que es barato y ofrece una rápida restauración pero su desventaja es que puede llegar a ser más lento escribiendo.

Para hacer esto utilizaremos un software llamado linuxvtl2, open source claro esta. Explicaré el proceso de instalación hoy, y a lo largo de esta semana nos adentraremos un poco más. Continued…

Dic

23

By Ismael Puerto

No Comments

Categories: General

Tags: ,

Backup de una base de datos MySQL

Es importante hacer backup de las cosas, si no pasa lo que me pasó a mi recientemente, como no quiero volver a repetir fallos he decidido hacer backup de esta.

Necesitaremos el ejecutable mysqldump que se encuentra en el paquete mysql-client. Desde mi maquina local ejecuto lo siguiente:

#mysqldump -u admin -p -h maquina.remota.com database1 > fecha.sql

Hace un backup con el usuario admin, que debe de tener los privilegios de poder bloquear la base de datos en -p nos pide la password el -h el host remoto la database1, la base de datos que queréis salvar y el > `date`.sql exporta la salida del comando a un archivo con el nombre la fecha de hoy .sql

Si queremos restaurar basta con eliminar la base corrupta, crear otra y desde la shell escribir lo siguiente:

#mysql -u usuario -p -h maquina.remota.com database1<archivo_backup.sql

Jul

22

By Ismael Puerto

1 Comment

Categories: General

Tags: ,

Bacula en Debian

A veces es muy bonito ponerse a crear servidores y eso, pero todo el mundo sabe que en algún momento pueden fallar y necesitaremos tener algo que nos respalde, para ello utilizaremos bacula, que me parece una herramienta bastante avanzada para gestionar nuestros backup’s.

Si andáis un poco perdidos sobre bacula, son necesario 2 servidores y el agente

  • bacula-director: este contiene los trabajos de backup, los clientes y el servidor de almacenamiento
  • bacula-storage: este contiene los discos duros o cintas donde volcaremos los backups
  • bacula-fd: este es el cliente del backup

En mi caso particular los tres los tengo en el mismo servidor, (hace backup de si mismo también, aun que no lo pondré para no agrandarlo más) y después tengo los bacula-fd donde quiero realizar más backups. Utilizaré mysql para que bacula-director almacene los datos, y dispongo de un RAID 5. Configuraremos dos clientes de prueba, un Linux y un Windows.

Empezamos con el Debian actualizado:

#apt-get update

Instalamos la mysql

#apt-get install mysql-server

Ahora el turno a bacula, si os fijáis bien pongo los 3 servidores que mencione antes:

#apt-get install bacula-client bacula-console bacula-director-mysql bacula-sd

Ahora podréis comprobar que tenemos 3 servicios más en el init.d: bacula-dir, bacula-sd y bacula-fd. No los arranquéis todavía por que no funcionarán. Los ficheros de configuración son un tanto sensibles así que solo funcionará si están perfectamente configurados.

Entramos en la mysql y creamos la base de datos, primero la arrancamos si la tenemos parada:

#/etc/init.d/mysql start

Entramos y creamos la base de datos:

#mysql -u root -p

mysql>create database bacula;

mysql>exit

Ya nos olvidamos de mysql, ahora solo nos queda bacula. Los archivos de configuración como siempre los encontraremos en /etc y este caso concreto en /etc/bacula. Empezaremos configurando el bacula-dir, que es el directorio.

Director {
Name = directorio #Nombre que querais
DIRport = 9101
QueryFile = “/etc/bacula/scripts/query.sql”
WorkingDirectory = “/var/lib/bacula”
PidDirectory = “/var/run/bacula”
Maximum Concurrent Jobs = 1
Password = “123456″ #Pongo esto de passwd por que es más sencillo para mi
Messages = Daemon
}

#Estos son los clientes de bacula, donde se hará el backup
Client {
Name = correo
Address = 10.100.0.59
FDPort = 9102
Catalog = MyCatalog
Password = “123456″
File Retention = 30 days
Job Retention = 6 months
AutoPrune = yes
}

Client {
Name = windows
Password = 123456
Address = 10.100.0.58
FDPort = 9102
Catalog = MyCatalog
File Retention = 30 days
Job Retention = 6 months
}

#Unidades de almacenamiento

Storage {
Name = File
Address = 10.100.0.57 #Esto es la ip del servidor donde almacenaremos los datos, en mi caso es la ip local de mi servidor
SDPort = 9103
Password = “123456″
Device = FileStorage
Media Type = File
}

#Datos de la base de datos

Catalog {
Name = MyCatalog
dbname = bacula; DB Address = “localhost” ; user = root; password = “lo_que_quieras”
}

#Sistema de logs

Messages {
Name = Standard
mailcommand = “/usr/lib/bacula/bsmtp -h localhost -f \”\(Bacula\) %r\” -s \”Bacula: %t %e of %c %l\” %r”
operatorcommand = “/usr/lib/bacula/bsmtp -h localhost -f \”\(Bacula\) %r\” -s \”Bacula: Intervention needed for %j\” %r”
mail =admin@linuxadmin.es = all, !skipped #Deberéis configurar el exim4 para que os envié el log a una cuenta externa de correo
operator = root@localhost = mount
console = all, !skipped, !saved
append = “/var/lib/bacula/log” = all, !skipped
}

Messages {
Name = Daemon
mailcommand = “/usr/lib/bacula/bsmtp -h localhost -f \”\(Bacula\) %r\” -s \”Bacula daemon message\” %r”
mail = tu-mail@tu-dominio.es = all, !skipped
console = all, !skipped, !saved
append = “/var/lib/bacula/log” = all, !skipped
}

Pool {
Name = Default
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 365 days
}

#Consola

Console {
Name = directorio #igual que el nombre de la segunda linea: “Name = …”
Password = “123456″
CommandACL = status, .status
}

#Esta tarea, hace backup del /var menos de /var/no_lo_quiero

FileSet {
Name = “correos”
Include {
File = /var
Options {
signature = MD5
}
}
Exclude {
File = /var/no_lo_quiero
}
}

#Esto es para al backup de windows, del disco d
FileSet {
Name = “disco d”
Include {
Options {
signature = MD5
}
File = d:/
}
}

#Esta es la parte donde decimos el ciclo

Schedule {
Name = “CicloSemanal”
Run = Incremental mon-sat at 01:00 #De lunes a sabado backup a la 1 de la madrugada
Run = Full sun at 01:00 #Domingo backup entero a la 1 de la madrugada
}
Schedule {
Name = “Diario”
Run = Full sun-sat at 23:10
}

#Este es el primer trabajo,

JobDefs {
Name = “copia de etc del servidor de correo”
Enabled = yes
Type = Backup
Level = Incremental
Client = correo
FileSet = “correos” #Nombre de la tarea, lo tenemos arriba
Schedule = “CicloSemanal”
Storage = File
Messages = Standard
Pool = Default
Priority = 10
}

Job {
Name = “Correos”
JobDefs = “copia de etc del servidor de correo”
Write Bootstrap = “/var/lib/bacula/correos.bsr”
}

JobDefs {
Name = “portatil windows”
Enabled = yes
Type = Backup
Level = Incremental
Client = windows
FileSet = “disco d”
Schedule = “CicloSemanal”
Storage = File
Messages = Standard
Pool = Default
Priority = 10
}

Job {
Name = “backup portatil disco d”
JobDefs = “portatil windows”
Write Bootstrap = “/var/lib/bacula/backup_portatil.bsr”
}

#Es necesario meter estas lineas para la restauración

#Restaura el disdo D de la maquina windows

Job {
Name = “Restauracion de disco D”
Type = Restore
client = windows
FileSet = “disco d”
Storage = File
Pool = Default
Messages = Standard
Where = d:/restaurado #Restaura en la misma maquina cliente
}

#Restaura /var de la maquina Linux

Job {
Name = “Restauracion de var”
Type = Restore
client = windows
FileSet = “correos”
Storage = File
Pool = Default
Messages = Standard
Where = /var/restore #Restaura en la misma maquina cliente
}

Ahora el bacula-sd.conf, este arvhivo debe de estar en el servidor de almacenamiento. Los backuups se depositan en /media/datos

Storage {
Name = respaldadora-sd
SDPort = 9103
WorkingDirectory = “/var/lib/bacula”
Pid Directory = “/var/run/bacula”
Maximum Concurrent Jobs = 20
}

Director {
Name = respaldadora-dir
Password = “Satur012″
}

Device {
Name = FileStorage
Media Type = File
Archive Device = /media/datos
LabelMedia = yes;
Random Access = Yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
}

Messages {
Name = Standard
director = respaldadora-dir = all
}

Ahora el fichero de configuración de la consola de bacula, bconsole.conf:

Director {
Name = localhost
DIRport = 9101
address = 127.0.0.1
Password = “123456″
}

Con estos tres archivos ya tendriamos la parte dificil. Ahora los arrancamos:

#/etc/init.d/bacula-dir start

#/etc/init.d/bacula-sd start

Y si todo ha ido bien debería de arrancar sin problemas. Lo ideal es empezar a configurar los clientes. El cliente de windows lo podréis bajar aquí buscais Win32/64. Importante. Bajad la versión del cliente igual que la del servidor, esto os evitará quebraderos de cabeza.

Ahora entraremos en la consola de bacula:

# bconsole
Connecting to Director localhost:9101
1000 OK: directorio Version: 2.4.4 (28 December 2008)
Enter a period to cancel a command.
*

Una vez en este promp podreis configurar todo lo relacionado con el backup. Lo ideal es que ejecutéis un “status” antes de empezamos a configurar la unidad de almacenamiento. Si todo esta ok menos los clientes no pasaría nada y podríamos continuar.

*label
Automatically selected Catalog: MyCatalog
Using Catalog “MyCatalog”
Automatically selected Storage: File
Enter new Volume name: datos
Automatically selected Pool: Default
Connecting to Storage daemon File at 10.100.0.57:9103 …
Sending label command for Volume “datos” Slot 0 …
3000 OK label. VolBytes=198 DVD=0 Volume=”datos” Device=”FileStorage” (/media/datos)
Catalog record for Volume “datos”, Slot 0 successfully created.
Requesting to mount FileStorage …
3906 File device “FileStorage” (/media/datos) is always mounted.
You have messages.
*

Lo ideal seria dar permisos solo al usuario bacula en el directorio /media/datos

#chown -R bacula:bacula /media/datos

En cuanto a la parte cliente es lo más sencillo de configurar, el archivo de bacula-fd.conf:

Director {
Name = directorio
Password = 123456
Address = 10.100.0.57 #IP del bacula-dir
}

FileDaemon {
Name = correo
FDport = 9102
WorkingDirectory = /var/lib/bacula/working
Pid Directory = /var/run/
Maximum Concurrent Jobs = 20
}

Messages {
Name = Standard
director = directorio = all, !skipped, !restored
}

No explico la instalación del cliente bacula en windows por que es siguiente, siguiente, siguinte. Cuando este instalado nos dirigiremos a Inicio > Programas > Bacula > Configuration > Edit Client Configuration y metemos las lineas de abajo:

Director {
Name = directorio
Password = 123456
Address = 10.100.0.57 #IP del bacula-dir
}

FileDaemon {
Name = windows
FDport = 9102
WorkingDirectory = “C\\Documents and Settings\\All Users\\Datos de programa\\Bacula\\Work”
Pid Directory = “C\\Documents and Settings\\All Users\\Datos de programa\\Bacula\\Work”
Maximum Concurrent Jobs = 20
}

Messages {
Name = Standard
director = directorio = all, !skipped, !restored
}

Guardamos y reiniciamos el servicio de bacula, como nota, si el servicio de bacula no inicia, es que el archivo esta mal. En linux seri:

#/etc/init.d/bacula-fd start

Reiniciad todas las maquinas y comprobad que todo se inicia en el arranque y solo quedaria ejecutar bconsole y movernos por las diferentes opciones que tenemos.

#bconsole
*status all #comprueba que todo este correcto
*run #ejecuta una tarea
*restore #restaura archivos, los seleccionamos con el comando mark y con done ejecutamos
*help #indespansable

Como detalle seria ideal conigurar exim4 para poder enviar correos a una cuenta externa de correo. Solo queda disfrutar que funcione y ojala que no lo tengáis que usar.

May

18

By Ismael Puerto

No Comments

Categories: General

Tags: , ,

Back In Time

Back In Time es una herramienta de backup con interfaz gráfica, para KDE y GNOME, este backup se basa en snapshot, a grandes rasgos solo hace backup de los datos modificados, esto nos evita un gran espacio en disco. Como dicen en su pagina web Back In Time es solo una herramienta gráfica que mueve rsync, diff y cp.

Vamos a instalarlo, para ello nos dirigimos a esta web, y como siempre bajamos el código fuente que es lo más universal.

Una vez bajado, lo descomprimimos:

#tar xvf backintime-0.9.24_src.tar.gz

#cd backintime-0-9-24

Si hacemos un ls veremos que tenemos dos carpetas llamativas, kde4 y gnome pues según el escritorio que estemos entramos en el directorio, en mi caso es kde4 pero el proceso es el mismo para gnome

#cd kde4

#./configure

Nos debe de salir algo así:

All OK. Now run:
make
sudo make install

Ahora tal y como nos dice, hacemos un make y un make install:

#make

#sudo make install

Ahora podemos arrancarlo desde el menú de kde o gnome

Como veis la interfaz tiene lo necesario y opciones bastante sencillas, como podéis ver en la pestaña General se ve el donde guardaremos los datos y con la opción de una tarea programada con cron, recordemos que si queremos adentrarnos más en cron deberemos modificarlo a mano.

En la pestaña Incluir vemos las carpetas de las que queremos hacer el backup.

La pestaña Excluir nos muestra los archivos que no queremos que se haga backup, podemos establecerlo por un patrón: *.conf, por un fichero en concreto o una carpeta en concreto.

La pestaña Autoeliminar, muestra cada cuanto tiempo se deberá borrar un backup, con la opción interesante de que si el espacio libre en disco es menor que X borrara archivos antiguos.

Yo recomiendo habilitar las notificaciones, siempre conviene saber lo que esta pasando en nuestro sistema.

Una vez configurado nuestra nueva herramienta, bastaría con darle aceptar y nos aparecerá una nueva ventana con nuestros snapshot, desde esta ventana podremos manejarlo.

Como veis es una herramienta bastante sencilla, para todo el publico, fácil de instalar, con las opciones necesarias y con una interfaz bastante amigable, así que os animo a probarlo.