63 lines
2.0 KiB
Bash
Executable File
63 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
RETOUR=0
|
|
if [ "$1" = "backup-end" ]
|
|
then
|
|
|
|
. /etc/amp-proxmox-utils/vzdump.hook.conf
|
|
|
|
echo "vzdump hook backup-end (by thomas Legay)"
|
|
VM_ID=$3
|
|
|
|
#Rename archive name with vm hostname
|
|
VM_HOSTNAME=$(pct config $VM_ID | grep hostname | cut -d " " -f 2)
|
|
ARCHIVE_DIR=$(dirname $TARFILE)
|
|
ARCHIVE_NAME=$(basename $TARFILE)
|
|
NEW_ARCHIVE_NAME=$(echo $ARCHIVE_NAME | awk -v VM_HOSTNAME="$VM_HOSTNAME" -F '[-]+' '{print $1"-"$2"-"$3"-"VM_HOSTNAME"-"$4"-"$5'})
|
|
ARCHIVE_PREFIX=$(echo $ARCHIVE_NAME | awk -F '[-]+' '{print $1"-"$2"-"$3"-"}')
|
|
echo "Rename $ARCHIVE_NAME to $NEW_ARCHIVE_NAME"
|
|
mv $TARFILE $ARCHIVE_DIR/$NEW_ARCHIVE_NAME
|
|
TMP=$?
|
|
[ $TMP -ne 0 ] && RETOUR=$TMP
|
|
|
|
#Remove old archive
|
|
nb=$(find $ARCHIVE_DIR -regex ".*/vzdump-lxc-$VM_ID-.*\(.tgz\|.tar.gz\|.tar\|.tar.zst\|.tar.lzo\)" | wc -l)
|
|
nb_delete=$(($nb - $MAX_ARCHIVE ))
|
|
echo "$nb archives ( $nb_delete to delete)"
|
|
if [ $nb_delete -gt 0 ]
|
|
then
|
|
count=0
|
|
for archive in $(find $ARCHIVE_DIR -regex ".*/vzdump-lxc-$VM_ID-.*\(.tgz\|.tar.gz\|.tar\|.tar.zst\|.tar.lzo\)" -printf "%T@ %p\n" | sort -n | cut -d " " -f 2)
|
|
do
|
|
count=$(( $count + 1 ))
|
|
delete_prefix=$(echo $archive | sed 's/\(.tgz\|.tar.gz\|.tar\|.tar.zst\|.tar.lzo\)//')
|
|
if [ $count -le $nb_delete ]
|
|
then
|
|
for file in $(ls $delete_prefix*)
|
|
do
|
|
echo "Remove $file"
|
|
rm "$file"
|
|
done
|
|
fi
|
|
done
|
|
fi
|
|
|
|
#remove old log
|
|
find $ARCHIVE_DIR -type f -mtime +$MAX_LOG_DAYS -name "*.log" -delete
|
|
|
|
#export archive
|
|
for tmp in $(find /etc/amp-proxmox-utils/vzdump.hook.d/ -name '*.conf')
|
|
do
|
|
. $tmp
|
|
echo "copie de l'archive pour $*"
|
|
scp -P $BACKUP_PORT $ARCHIVE_DIR/$NEW_ARCHIVE_NAME $BACKUP_DEST_USER@$BACKUP_DEST_IP:$BACKUP_DEST_PATH
|
|
TMP=$?
|
|
[ $TMP -ne 0 ] && RETOUR=$TMP
|
|
for tmp in $( ssh -p $BACKUP_PORT $BACKUP_DEST_USER@$BACKUP_DEST_IP "ls -rt $BACKUP_DEST_PATH/*$3*" | grep -v -e .log | head -n -$NB_ARCHIVE);
|
|
do
|
|
echo "suppression distante de $tmp"
|
|
ssh -p $BACKUP_PORT -l $BACKUP_DEST_USER $BACKUP_DEST_IP rm $tmp
|
|
done
|
|
done
|
|
fi
|
|
exit $RETOUR
|