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