BASH – Script para realizar un BACKUP simple.-

#!/bin/bash
# Vars
log="rotate_backup.log"
backupPath="/backup/machines/"
oldCopies=($(ssh $user@$backupHost "ls $backupPath$localHost | sort -r"))
maxNumOfCopies=3

# Log file
cat /dev/null > $log


# If they are more than the max of copies
if [ ${#oldCopies[@]} -gt $maxNumOfCopies ]; then

# Unset of array values with index < of maxNumOfCopies
i=0
while [ $i -lt ${#oldCopies[@]} ]; do
if [ $i -lt $(( $maxNumOfCopies )) ]; then
unset oldCopies[$i]
fi
let "i++"
done

# We remove the old copies
for copy in ${oldCopies[@]}; do
ssh $user@$backupHost "rm -rf $backupPath/$localHost/$copy"
result=$(evalOperation $?)
echo "&lt;p&gt;Removing copy of $copy [$result]&lt;/p&gt;" >> $log
done
fi

if [ ! -s rotate_backup.log ]; then
echo "&lt;p&gt;No copies to delete&lt;p&gt;" >> $log
fi

# We send a email
sendMailStatus "Removing old copies of $localHost done $date" $log
Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *