Backup carpeta linux

    Vamos a usar un script sencillo para realizar un backup de una carpeta en concreto llamada /FILES hacia otra llamada /BACKUPS. En la carpeta destino (/BACKUPS) aplicaremos un control de rotación para eliminar y mantener siempre 7 ficheros y en este caso, la copia se realizará en el mismo equipo.

    #!/bin/bash
    ORIGEN="/FILES"
    BACKUP="/BACKUPS"
    
    CREATE(){
        mkdir -p "$ORIGEN"
        TIME=$(date +%d%m%Y%H%M%S)
        tar -czf "$ORIGEN/FILES_$TIME.tar.gz" "$BACKUP"
    }
    
    DELETE_OLD(){
        cd "$ORIGEN" || exit
        COUNT=$(ls -1 | grep FILES | wc -l)
        if [ "$COUNT" -gt 7 ]; then
            OLDEST=$(ls -1t | grep FILES | tail -n 1)
            rm "$OLDEST"
        fi
    }
    
    CREATE
    DELETE_OLD
    

    y via crontab:

    0 10 * * * /scripts/BACKUP_FOLDER.sh
    

    Leave a Reply

    Your email address will not be published. Required fields are marked *