Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- timestamp=$(date +%s)
- # ejecuta el script '/etc/mariadbdump.con' que solo tiene variales:
- #
- # backupdir="/var/backups/mariadb"
- # backupserver=192.168.0.97
- source /etc/mariadbdump.conf
- # Verficiar el nivel de usuario, para
- # realizar el volcado se debe tener privilegios de 'root'
- # La id de usuario para 'root' es '0'.
- # '-ne' not equal
- if [ $UID -ne 0 ];then
- # se envia la salida al 'standar error'
- echo "Debe ser usuario 'root' para ejecutar este programa" >&2
- # se sale del script con exit status 1
- exit 1
- fi
- mariadb_dump () {
- # una variable local solo existe dentro de la funcion
- # puede llamarse igual que otras variables de fuera
- # pero sigue siendo independiente.
- local timestamp=$1
- # un retorno es un exit status pero de funciones
- # con el operador '||' (or) si el volcado termina con
- # errores a funcion retorna '1'
- # de lo contrario retorna '0'
- echo 'Volcado de bases de datos (local)...'
- mysqldump --all-databases > ${backupdir}/${timestamp}_mariadb.sql || return 1
- return 0
- }
- test_conn () {
- ping -c 1 $backupserver > /dev/null 2>&1|| return 1
- return 0
- }
- backup_remoto () {
- echo "rsync -a $backupdir ${backupuser}@${backupserver}:/mariadbbkp/"
- }
- if [ -d "$backupdir" ]; then
- # el programa termina si la funcion retorna '1'
- mariadb_dump $timestamp && ls -1 $backupdir || { echo "No se pudo hacer volcado"; exit 1; }
- else
- mkdir -v -p $backupdir || { echo "No se pudo crear ${backupdir}."; exit 1; }
- mariadb_dump $timestamp && ls -1 $backupdir || { echo "No se pudo hacer volcado"; exit 1; }
- fi
- echo "Realizando backup remoto..."
- test_conn || { echo "El servidor '$backupserver' no responde. Se sale." ; exit 1; }
- backup_remoto
- echo "Fin del script."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement