Script para gestión de backups de PostgreSQL en FreeBSD

No recuerdo si había comentado que estaba en plena migración tecnológica laboral, trabajando con el SGBD libre PostgreSQL y el sistema operativo (libre, of course) FreeBSD. Y el primero de los trasteos era simple ¿cómo automatizo los backups? Ya habíamos hablado de este tipo de cuitas alguna vez por aquí, así que vamos a ver cómo con un script, y haciendo uso de Cron, podemos lograrlo:

#!/bin/sh
# pgsql backups --datosde conexion
db_user="tu_usuario"
db_name="tu_base_de_datos"
db_dumpdir="/var/backups/carpeta"
date_format="`date +%Y-%m-%d.%H:%M`"

#ARRIBA CAMBIA LOS EJEMPLOS POR LOS DATOS QUE CORRESPONDAN. 
 
# BORRAMOS LOS BACKUPS MÁS VIEJOS
# PARA NO SATURAR
# EN ESTE CASO, LOS QUE TENGAN MÁS DE
# 4 SEMANAS

expire_time="+4w"
 
# Begin Script #
/usr/local/bin/pg_dump -U $db_user $db_name -f "$db_dumpdir/$db_name-$date_format.pgsql"
/usr/bin/find $db_dumpdir -d 1 -Btime $expire_time -delete

Con este ya tenemos un script que nos genera un backup de la base de datos en nuestra carpeta de copias de seguridad y además borra los que tengan más de cuatro semanas, para que no saturemos el disco duro. Y ahora, como dijimos antes, necesitamos Crontab para automatizar la copia. Asumamos que guardamos el script en la dirección /usr/local/scripts/pg_backup.sh, porque somos gente ordenadita (al menos a la hora de organizar discos duros). En nuestro caso ejecutaremos el script cada 6 horas:

# crontab -e
* /6 * * * /usr/local/scripts/pg_backup.sh > /dev/null 2>&1

Y con esto ya tenemos la cuestión de automatizar las copias de seguridad solventada.

Entorno gráfico en FreeBSD

A nivel usuario los sistemas libres BSD, desarrollados por la universidad de Berkeley, no son muy populares. No es así a nivel de servidores, donde han ganado popularidad en los últimos tiempos, ya que varios especialistas afirman que son los sistemas menos vulnerables a ataques DDOS. Por otra parte, a nivel software son casi totalmente compatibles con Linux, por lo que no aporta apenas handicaps frente a un servidor Linux.

Por defecto FreeBSD no incluye entorno gráfico, pero existe la posibilidad de instalarle uno (GNOME o KDE). Lo primero es que para hacer esto es más recomendable haber descardo una versión STABLE que una RELEASE. Aunque se recomienda RELEASE para entornos de servidores el instalar paquetes del repositorio STABLE en equipos con ese Kernel puede provocar problemas de estabilidad en el sistema.

En fin, si estáis instalando desde cero os dejo por aquí este enlace a un tutorial de instalación (es del 8.0, pero vale perfectamente para el 8.1). Cuando ya tengáis el SO instalado en vuestro equipo es cuando toca instalar. Podéis elegir, como dije antes, entre GNOME o KDE (también puedes instalar ambos, probar y luego quedarte con el que más te guste). Yo, por mi parte, para este sistema creo que KDE es la mejor opción: más austero, pero más robusto y estable. Los comandos serían:

#primero hazte root con 
su -root

#para ambos casos ejecuta
pkg_add -r xorg

#para instalar KDE
pkg_add -r kde4

#para GNOME
pkg_add -r gnome3

Con esto ya tienes instalado tu entorno gráfico, pero si reinicias el equipo verás que sigue arrancando con el entorno de consola. Esto es porque tenéis que cambiar la configuración para que, por defecto, el equipo arranque con él.

Para activar el entorno gráfico GNOME por defecto hay que editar el fichero rc.conf y añadir al final la línea gnome_enable=”YES”. Para editar el fichero basta con teclear lo siguiente, teniendo todavía permisos de root

ee  /etc/rc.conf

Cuando hayas añadido la línea antes citada sal pulsando ESC y guardando los datos. Si ejecutas un reboot debría arrancar ya con el entorno gráfico.

Podrías pensar que para KDE la cosa es igual, pero no. El caso de KDE prueba con el siguiente comando:

echo “exec /usr/local/kde4/bin/startkde” > ~/.xinitrc

Con esto lograrás que arranque KDE al escribir startx en la consola.

Piens que BSD no es un Ubuntu, el instalar el entorno gráfico vendrá seguido de tener que ir agregando a mano todas las utilidades y herramientas de aplicacion que deseamos tener en nuestro entorno, no os saldrá preconfigurado.

Y un apunte final, si no queréis romperos la cabeza con esto, existe GhostBSD, un sistema operativo BSD con entorno gráfico GNOME ya instalado. No lo he probado, pero por comentarios que he leído parece que es bastante estable. Si alguno lo ha instalado ya, puede comentarlo por aquí.