dasd
Linux hacia red Windows
Adrian Gibanel Lopez
7 de febrero de 2010
Índice
1. Introducción
2
2. Script de copia
2
3. Resultado delscript
3
4. Automatización con CRON
3
5. Conclusiones
4
1
1.
Introducción
En este documento se pretende explicar como automatizar el backup
de una base de datos PostgreSQLque está ejecutandose en un servidor
GNU/Linux. La particularidad de este backup es que los datos se guardan
en una carpeta compartida de Windows. Es decir, que el backup nal a un
dispositivo sicoexterno como puede ser un cdrom o dvd se le supone al
responble de la máquina con Windows.
2.
Script de copia
A continuación se detalla el código fuente del script que guardaremos en:/usr/local/bin/backup_postgresql.
#!/bin/bash
##### Windows config
WINDOWS_SHARE="//SERVER/Logic"
WINDOWS_SHARE_IP="192.168.0.249"
WINDOWS_SHARE_USER="Administrador"
BACKUP_PARTIAL_DESTINATION=\"Mis documentos/bases_de_datos/backups_automaticos"
PASSWORD_STRING="guest"; # Might be password=my-secret
##### Linux config
MOUNT_POINT="/mnt/samba_backup"
POSTGRES_USER="postgres"POSTGRES_GROUP="postgres"
##### Backup data
BACKUP_FULL_DESTINATION=\
"${MOUNT_POINT}"/"${BACKUP_PARTIAL_DESTINATION}"
DATABASE_NAME="cereal"
BACKUP_FILENAME_SUFFIX="gz"
BACKUP_FILENAME=\${DATABASE_NAME}_`date +"%Y_%m_%d_%H_%M"`.\
${BACKUP_FILENAME_SUFFIX}
COMPRESS_FILTER="gzip"
mount -t cifs ${WINDOWS_SHARE} ${MOUNT_POINT} \
-o rw,mand,nosuid,nodev,user=${WINDOWS_SHARE_USER},\ip=${WINDOWS_SHARE_IP},${PASSWORD_STRING},\
2
uid=${POSTGRES_USER},gid=${POSTGRES_GROUP}
su postgres -c "pg_dump \
${DATABASE_NAME} | ${COMPRESS_FILTER} \
>\"${BACKUP_FULL_DESTINATION}/${BACKUP_FILENAME}\""
umount ${MOUNT_POINT}
Para que este script funcione correctamente se han de cumplir varias
condiciones:
El directorio MOUNT_POINT existe (es decir, hemos creado como
root el directorio...
Regístrate para leer el documento completo.