Archive

Archive for the ‘Software’ Category

Bacula

August 3rd, 2011 2 comments

Bacula es un sistema para crear respaldos con el cual podemos automatizar esta tediosa tarea. No esta excento de monitoreo ya que debemos de aseguararnos que lo que hallamos programado se realice pero al menos no tendremos que copiar ese monton de archivos.

Ademas los respaldos se pueden configurar para hacerse de manera incremental asi solo se guardaran los archivos nuevos o modificados.

Vamos mostrar como es la instalacion y la configuracion basica. Tendremos un servidor y un cliente que es de donde sacaremos el respaldo.

Instalacion

apt-get install bacula bacula-director bacula-sd bacula-fd

Recomiendo tambien instalar los paquetes para mysql y ahi guardar el catalogo.

Configuracion
Antes de configurar les recomiendo que cada uno de los servidores tenga su nombre de host unico para poder indentificarlos, esto tambien estara ligado a los archivos de configuracion de bacula, aunque los nombres de los servicios de bacula se pueden cambiar. Tambien les recomiendo ampliamente escribir el mismo password para cada uno de los servicios, ya se que algun purista me va a decir que eso no es correcto pero les aseguro que les evitara algun dolor de cabeza sobretodo si es la primera vez que hacen estas configuraciones.

Storage Daemon
Comenzaremos con el Storage Daemon que es el programa donde se define en que lugar guardaremos los respaldos.

/etc/bacula/bacula-sd.conf

Storage {                             # definition of myself
  Name = userver-sd
  SDPort = 9103                  # Director's port
  WorkingDirectory = "/var/lib/bacula"
  Pid Directory = "/var/run/bacula"
  Maximum Concurrent Jobs = 20
  #SDAddress = 0.0.0.0
}

Director {
  Name = userver-dir
  #Password = "x63UhIUXvBtpJuegoai8xTGHSKrkOXbvX"
  Password = "abcd890"
}

Director {
  Name = userver-mon
  #Password = "nPVAjms5-mqVKI0UcVYhjb0Bu4rmf3h_H"
  Password = "abcd890"
  Monitor = yes
}

Device {
  Name = FileStorage
  Media Type = File
  Archive Device = /usr/src/backup/bacula
  LabelMedia = yes;                   # lets Bacula label unlabeled media
  Random Access = Yes;
  AutomaticMount = yes;               # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
}

Si se fijan deje como comentario SDAddress = 0.0.0.0 tuve algunos problemas cuando se querian conectar los clientes. Practicamente no hay que modificar esta parte.

Los passwords los ponemos iguales, aqui la parte mas importante es la definicion de los medios de almacenamiento aqui podemos ver que tenemos uno que se llama Name = FileStorage este nombre lo volveremos a ver en algun otro archivo de configuracion, este es el nombre default se lo pueden cambiar pero recuerdenlo para mas tarde. La parte Archive Device = /usr/src/backup/bacula es donde se van a crear los archivos de respaldo, esto puede ser un directorio o algun disco que este montado en el sistema.

File Daemon
El file daemon es el programa que enviar los archivos solicitados para ser respaldados.

/etc/bacula/bacula-fd.conf

Director {
  Name = userver-dir
  Password = "abcd890"
}

#
# Restricted Director, used by tray-monitor to get the
#   status of the file daemon
#
Director {
  Name = userver-mon
  Password = "abcd890"
  Monitor = yes
}

Practicamente solo hay que cambiar los passwords. Solo debemos de verificar el nombre del director en caso de que lo hallamos cambiado.

Director
El director se encargar de hacer los respaldos manda llamadar al File Daemon de cada cliente configurado y al Storage Daemon para almacenar los archivos. En esta parte se definen los cloiente que van a ser respaldados.

/etc/bacula/bacula-dir.conf

Debido a que la configuracion de este archivo es mas extensa, lo vamos a dividir en varias partes.

Director {                            # define myself
  Name = userver-dir
  DIRport = 9101                # where we listen for UA connections
  QueryFile = "/etc/bacula/scripts/query.sql"
  WorkingDirectory = "/var/lib/bacula"
  PidDirectory = "/var/run/bacula"
  Maximum Concurrent Jobs = 1
  Password = "abcd890"         # Console password
  Messages = Daemon
  DirAddress = 0.0.0.0
}

Solo debemos verificar el password y el nombre ya estos se utilizan en los clientes y en los demas programas que componen a bacula. Deben dejar intactos los trabajos y definiciones que ya estan que el trabajo por default es el de respaldar el catalogo donde se van guardando las configuraciones y trabajos ejecutados por el director, esta base de datos es necesaria para poder restaurar mas adelante.

Client {
  Name = cliente-fd
  Address = 192.168.20.100
  FDPort = 9102
  Catalog = MyCatalog
  Password = "abcd890"
  File Retention = 30 days
  Job Retention = 6 months
  AutoPrune = yes
}

Deifnimos el cliente que vamos a respaldar, retendremos los archivos por 30 dias y los trabajos por 6 meses.

Storage {
  Name = File
# Do not use "localhost" here
  Address = 192.168.20.1                # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "abcd890"
  Device = FileStorage
  Media Type = File
}

Deifnimos el almacenamiento recuerden poner el mismo password. El nombre del dispositivo Device = FileStorage de debe ser igual al que se puso en bacula-sd.conf. Tambien podemos cambiar el nombre Name = File si lo deseamos. Como dice el comentario debemos poner un nombre de dominio o poner la direccion ip del servidor.

Pool {
  Name = File
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 365 days         # one year
  Maximum Volume Bytes = 50G          # Limit Volume size to something reasonable
  Maximum Volumes = 100               # Limit number of Volumes in Pool
}

En esta parte se define un conjunto de unidades de respaldo en nuestro caso este conjunto seran archivos que son creados el directorio que definimos a estos conjuntos bacula les llama volumenes, estamos definiendo que el tamaño maximo de un volumen sera de 50GB y que el numero maximo de volumenes es de 100, estos volumenes solo duraran cuando mucho 1 año.

Podemos definir varios Pools para el caso de que querramos que los respaldos se hagan en diferentes partes, es decir si tuvieramos un cliente1 y cliente2 podemos decirle que los ponga en directorios o discos duros diferentes.

FileSet{
  Name = "Servidor1"
  Include {
    Options{
       signature = MD5
       compression = GZIP
    }
    File = /home/respaldo
    File = /var/www

Definimos los archivos que queremos respaldar del cliente podemos definir tambien directorios.

Schedule {
  Name = "WeeklyCycle"
  Run = Full 1st sun at 23:55
  Run = Differential 2nd-5th sun at 23:55
  Run = Incremental mon-sat at 23:55
}

Se define cada cuanto tiempo se haran los respaldo. Recomiento no cambiarlo. Se hara un respaldo completo el primer domingo de cada mes, uno diferencial del segundo domingo y un respaldo incremental de lunes a sabado.

Job{
  Name = "Cliente1"
  JobDefs = "Cliente1Job"
}

Creamos el trabajo Cliente1 y decimos que la descripcion de ese trabajo se llama Cliente1Job.

JobDefs {
  Name = "Cliente1Job"
  Type = Backup
  Level = Incremental
  Client = cliente1-fd
  FileSet = "Servidor1"
  Schedule = "WeeklyCycle"
  Storage = File
  Messages = Standard
  Pool = File
  Priority = 10
  Write Bootstrap = "/var/lib/bacula/%c.bsr"
}

Si se fijan en esta definicion se concentran las demas partes que hemos escrito.

Con esto terminamos la parte del director, ahora lo que resta es reiniciar los servicios.

Configuracion del cliente

Para el caso del cliente solo necesitamos el File Daemon.

apt-get install bacula-fd

/etc/bacula/bacula-fd.conf

Director{
  Name = userver-dir
  Password = "abcd890"
}

Solo agregaremos el nombre del director y su password. Reiniciamos el servicio y listo.

Consola
La consola sirve para monitorear y ejecutar los trabajos si asi lo queremos.

Director {
  Name = userver-dir
  DIRport = 9101
  address = localhost
  Password = "abcd890"
}

Recuerden que se pone el mismo nombre de director y el password.
Para entrar a la consola solo escribimos bconsole en la terminal de linux.

Y con esto ya tenemos configurado un servidor de respaldos automaticos. Pueden ir agregando cliente con forme lo vayan necesitando.

Espero a ver sido lo suficientemente claro.

Saludos.

Categories: Linux, Software Tags:

Respaldo subversion

January 9th, 2010 No comments

Tuve que respaldar un servidor que tenia unos proyectos en subversion y me di cuenta que lo estaba haciendo de la manera incorrecta, yo tenia la idea que con solo copiar los directorios al nuevo servidor bastaba para restaurar. En teoria si puede funcionar ese metodo siempre y cuando se tenga la misma version en el servidor destino. Pero que pasa cuando no es asi? Nos mostrara un error como este.

Expected FS format ’2′ found format ’3′

Lo que haremos sera exportar los repositorios con el comando dump

$ svnadmin dump /path/repositorio > repositorio.dump

Hecho esto lo copiamos a su destino, en donde crearemos un nuevo repositorio para luego importar el archivo que generamos.

$ svnadmin create /path/repositorio
$ svnadmin load /path/repositorio < repositorio.dump

Y con eso ya no tendremos problemas, el proceso es algo lento dependiendo que tan grande es el repositorio pero vale la pena esperar.

Saludos.

Categories: Software, Tips Tags:

Programacion PHP desde el USB

December 20th, 2007 No comments

Hace unos meses me tope con este sitio que ofrece de manera gratuita un paquete que se puede incluso construir en linea de acuerdo a sus necesidades. Se trata de una instalacion “portable” de apache, php, mysql y algunas aplicaciones adicionales.

Esta es una manera excelente de llevar nuestros proyectos a donde sea y poder seguir trabajando aunque no estemos en la computadora de la casa o la oficina.

http://www.chsoftware.net/en/useware/wos/wos.htm

Categories: General, Software Tags:

Extensiones Firefox para Programacion Web

July 26th, 2007 No comments
Categories: Software Tags:

Servidor casero con Linux Ubuntu

July 10th, 2007 2 comments

Este es el primero de una serie de post en los que mostrara como montar un servidor casero con linux ubuntu 6.06 y una conexion dsl con ip dinamica.

Le llamo a esto servidor casero porque todos estos programas estaran instalados en una computadora situada en nuestro hogar u oficina sin ser esta un gabinete de servidor.
La computadora que utilizaremos sera alguna con suficiente capacidad para correr el sistema linux.

Este servidor nos permitira alojar nuestra pagina web o tambien tener nuestro servidor de correo.

En mi caso cuento con el siguiente equipo:

Procesador celeron 2.6 Ghz
Memoria RAM 256MB
Disco Duro 80 Gb
Tarjeta de red y lector de CDs

Primero procederemos a instalar los paquetes necesarios, al momento de instalar Ubuntu 6.06 Server podemos escoger el tipo de sistema LAMP y nos habra instalado la mayoria de estos paquetes, en caso contrario ejecutamos los siguientes comandos en una terminal de root.

apt-get install apache2 apache2-common apache2-utils

apt-get install php5 php5-cli php5-mysql php5-pgsql

Podemos instalar mysql o postgres o ambos eso dependera de cada instalacion y el objetivo
del servidor

apt-get install mysql-server

apt-get install postgresql-8.1 postgresql-client-8.1

Hasta aqui ya hemos instalado los programas necesiarios para un servidor web con paginas dinamicas hechas con php y ademas poder utilizar alguna base de datos ya sea postgres o mysql.

Para poder accesar a las paginas que almacenaremos en nuestro servidor necesitamos un dominio.
El dominio se puede adquirir con cualquier proveedor conocido, pero debido a que el internet sera dsl y estara con una ip dinamica necesitaremos un dns dinamico que se actualice cuando la ip cambien y mantenga el servidor disponible.

Algunos lugares donde dar de alta un servicio de dns dinamico pueden ser zoneedit.com o dyndns.com este ultimo incluso ofrece un servicio gratuito con el podemos tener un subdominio de alguno de ellos.

Una vez registrado el dominio y dado de alta en el servicio de dns dinamico instalamos el siguiente paquete.

Al terminar de instalarse nos preguntara que proveedor tenemos y los datos de la cuenta y dominio.

apt-get install ddclient

Ahora que ya tenemos activado el dominio, basta ir al navegador y escribir la direccion para
entrar en el servidor y podemos ver la pagina default de apache.

Ahora editaremos la configuracion de apache que nos servira para mas adelante.

editamos el archivo

vi /etc/apache2/sites-available/default

y cambiaremos lo siguiente

DocumentRoot /var/www/apache2-default —-> DocumentRoot /var/www/html
var/www/apache2-default/> —-> var/www/html/>

Guardamos y creamos el directorio

mkdir /var/www/html

Reinicamos el servicio

/etc/init.d/apache2 reload

Si todo salio bien ahora el directorio en donde se serviran las paginas sera /var/www/html
de manera que cualquier pagina que queramos servir tendremos que guardarla ahi.

Hemos llegado al final de esta entrega, espero sea de utilidad. En caso de dudas o comentarios pueden escribirme a alvaro arroba pixelado.org

En la proxima entrega veremos como agregar un servicio de ftp para poder subir las paginas a nuestro servidor.

Hasta luego.

Categories: Linux, Software Tags:

Grabando cds y dvds desde linea de comando

July 5th, 2007 1 comment

Para poder hacer esto necesitamos los siguientes paquetes en Ubuntu

apt-get install cdrecord, dvd+rw-tools, mkisofs

Borrando un CDRW

cdrecord blank=fast dev=/dev/cdrw

Borrando un DVD-RW

dvd+rw-format -blank /dev/cdrw

Grabando una image ISO a un cd

cdrecord dev=/dev/cdrom driveropts=burnfree -v -data cd_image.iso

Creando una imagen ISO

mkisofs -o test.iso -J -r -v -V test_disk /data

Montar una imagen ISO

mount -t iso9660 -o loop archivo.iso /data

Grabando una imagen ISO en DVD

growisofs -dvd-compat -Z /dev/dvd=dvd1.iso

Referencias

https://help.ubuntu.com/community/CdDvdBurning

Categories: Linux, Software Tags:

Agregando Soporte SSL para Apache en Ubuntu

June 13th, 2007 No comments

Secure Sockets Layer (SSL) es un protocolo que nos permite servir paginas de manera segura, algunos programas como oscommerce lo utilizan para poder realizar las transacciones.

Añadiremos soporte ssl para Apache en nuestro servidor ubuntu

Instalamos apache si es que no lo tenemos

apt-get install apache

Habilitamos el modulo ssl de apache

a2enmod ssl

Generamos un certificado

apache2-ssl-certificate

Ahora crearemos el sitio que utilizara ssl en apache, solo hara una copia del archivo default

cd /etc/apache2/sites-available
cp default ssl

Cambiamos la configuracion del archivo ssl

NameVirtualHost *:443
</VirtualHost>

Debajo de SSLEngine On escribimos

SSLCertificateFile /etc/apache2/ssl/apache.pem

Habilitaremos el nuevo sitio ssl y reiniciamos

a2ensite ssl
/etc/init.d/apache2 force-reload

Espero les sirva.

Saludos.

Categories: Linux, Software Tags:

Monitoreando con Munin en Ubuntu

June 9th, 2007 No comments

Munin es un programa que nos sirve para monitorear servidores, puede resultar muy util para ver estadisticas de uso de los recursos de nuestros servidores, como memoria, disco duro y servicios. Una vez teniendo esta informacion podemos tomar una decision de actualizar el hardware o ponerle especial atencion a algun servicio que tengamos.

A continuacion vamos a describir como inatalarlo y configurarlo para operar en un servidor con Ubuntu.

primero vamos a instalar los paquetes necesarios.

apt-get install munin munin-node

Una vez instalado tenemos el direcotrio /etc/munin/plugin-conf.d/munin-node
en donde se encuentra la configuracion de los plugins que actualmente estan activos. Basicamente en este archivo escribimos el usuario o grupo con el que los plugins deben ejecutarse para poder sacar la informacion que se necesita, ademas de algunas variables que necesiten los plugins.

En el directorio /etc/munin/plugins estan los plugins activos, aqui agregaremos algunos que nos podran ser utiles, este directorio alamacena solo enlaces simbolicos a los archivos del directorio /usr/share/munin/plugins que es donde realmente se encuentran los plugins.

Ademas los plugins que ya vienen por default agregaremos unos cuentos mas creando enlaces simbolicos a los archivos de la siguiente manera. Estando dentro del directorio /etc/munin/plugins

ln -s /usr/share/munin/plugins/apache_accesses apache_accesses
ln -s /usr/share/munin/plugins/apache_volume apache_volume

Con esto mostrara informacion acerca de apache.

Si qeremos eliminar un plugin de la lista solamente tenemos que borrar su enlace simbolico de la sigueinte manera. Estando dentro del directorio /etc/munin/plugins

unlink apache_volume

Ahora solo recargaremos la configuracion con el comando.

/etc/init.d/munin-node restart

Espero que sea de ayuda para ustedes.

Hasta la proxima.

Categories: Linux, Software Tags:

Busquedas en google

May 24th, 2007 No comments

Algunos tips para hacer busquedas con google

Buca archivos mp3 o ogg en las paginas que tienen como titulo index of, muchos usuarios tienen sus archivos en directorios accesibles desde internet

intitle:”index.of” (mp3|ogg) cancion -html -htm -php -cf -jsp

Busca las palabras en el dominio indicado

site:pagina.com palabra

Busca en los dominios con la extension indicada

site:com palabra

Lo del “index of” es algo interesante, se puede restringir el acceso a directorios que no contengan un index desde la configuracion del servidor web. Y el no activar este tipo de restricciones disminuye la seguridad de los usuarios.

Saludos.

Categories: Software Tags:

Manteniendo Bookmarks

July 25th, 2006 No comments

Siempre he tenido problemas con mis boomarks, cuando invesitgo algo suelo grabar en mi maquinas las paginas con informacion importante pero siempre por alguna razon se pierden en una reinstalacion. Ahora estoy usando [url]http://del.icio.us/[/url] un sitio en donde se puede tener los bookmarks almacenados y ademas de compartirlos con otros usuarios, se puede instalar un plugin para el firefox y asi accesarlos facilmente.

Saludos.

Categories: Software Tags: