Ejemplo script de backup

Aquí os dejo uno de los scripts de backup que uso para hacer la copia de seguridad de los servidores con proxmox. Espero que os sea de ayuda :)

#!/bin/bash

## lmdb-backup (proxmox)
#### Loc: ******
#### OS: Debian 9 (container lxc)
#### Up: 2019/08/28 11:45 (Blackhold)

BACKUP_DIR="/mnt/hd_extern/backups_lmdb"
ID[0]="server1:x.x.x.x1"
ID[1]="server2:x.x.x.x2"

for INFO in "${ID[@]}"
do
    HOST=`echo ${INFO} |awk -F ':' '{print $1}'`
    IP=`echo ${INFO} |awk -F ':' '{print $2}'`
    BACKUP_DIR_SERVER="${BACKUP_DIR}/${HOST}"

    if [[ ! -e ${BACKUP_DIR_SERVER} ]]; then
        mkdir ${BACKUP_DIR_SERVER}
        mkdir ${BACKUP_DIR_SERVER}/daily
        mkdir ${BACKUP_DIR_SERVER}/monday
        mkdir ${BACKUP_DIR_SERVER}/15
        mkdir ${BACKUP_DIR_SERVER}/28
        mkdir ${BACKUP_DIR_SERVER}/lastmonth
    fi

    rsync -av --delete root@${IP}:/var/lib/vz2/dump/ ${BACKUP_DIR}/${HOST}/daily/dump/
    rsync -av --delete root@${IP}:/var/lib/vz2/template/ ${BACKUP_DIR}/${HOST}/daily/template/

    if [[ $(date +%e) -eq 28 ]]; then
        echo Backup final de mes
        rsync -av --delete ${BACKUP_DIR}/${HOST}/28/dump/ ${BACKUP_DIR}/${HOST}/lastmonth/dump/
        rsync -av --delete ${BACKUP_DIR}/${HOST}/28/template/ ${BACKUP_DIR}/${HOST}/lasthmonth/template/

        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/dump/ ${BACKUP_DIR}/${HOST}/28/dump/
        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/template/ ${BACKUP_DIR}/${HOST}/28/template/
    fi

    if [[ $(date +%e) -eq 15 ]]; then
        echo Backup dia 15
        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/dump/ ${BACKUP_DIR}/${HOST}/15/dump/
        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/template/ ${BACKUP_DIR}/${HOST}/15/template/
    fi

    if [[ $(date +%u) -eq 1 ]]; then
        echo Backup dilluns
        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/dump/ ${BACKUP_DIR}/${HOST}/monday/dump/
        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/template/ ${BACKUP_DIR}/${HOST}/monday/template/
    fi
done

Y lo añado en cron

root@lmdb-backup:~# vi /etc/cron.d/lmdb
# backup planets - activated on 2019-08-18 - blackhold
30 1    * * *   root    /root/scripts/backup_nodes_planet_lmdb.sh

Por supuesto, para hacer funcionar el script es necesario instalar rsync y también poner la clave pública del servidor de backups en el autorized_keys (ssh) de los servidores que queramos hacer copia de seguridad. Recomiendo fervientemente que ninguno de los servidores ni contenedores, tenga acceso directo al servidor ssh, así en caso de intrusión o infección las copias de seguridad quedarán seguras en su sitio.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir el correu brossa. Aprendre com la informació del vostre comentari és processada