Created
January 28, 2025 23:55
-
-
Save elico/fa46d171c692f8f7c735ca1946919206 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# | |
# https://beamnetworks.dev | |
# CREATED BY: beamnetworks.dev | |
# | |
# | |
# SCRIPT WILL LIVE BACKUP A VM WITH PASSED THROUGH DATA WHEN SCRIPT IS RAN | |
# | |
# | |
echo "Defining variables" | |
complete=0 | |
vm="$(echo $1)" | |
backupdir="$virshbackups_remotedir/$vm" | |
echo "Backup directory is: $backupdir" | |
echo "Creating directory if it doesn't already exsist.." | |
mkdir -p $backupdir | |
echo "Continuing to define variables" | |
srcdir="$(virsh -c qemu:///system domblklist $vm | grep qcow2 | sed -e 's/\<vda\>//g' | xargs)" | |
bktime="$(date +%s)" | |
bkdir="$(date +%d-%m-%y-%s)" | |
echo "Source directory" | |
echo $srcdir | |
echo "Backup time" | |
echo $bktime | |
echo "Starting backup" | |
virsh -c qemu:///system backup-begin $vm | |
echo "Backup name" | |
echo $srcdir.$bktime | |
echo "Setting up backup directory" | |
mkdir $backupdir/$bkdir | |
echo "Full backup directory is: $backupdir/$bkdir" | |
i=0 | |
while [ $complete = 0 ] | |
do | |
sleep 2s | |
currentstatus="$(virsh -c qemu:///system domjobinfo $vm | grep 'Time elapsed')" | |
if [ ! -z "$currentstatus" ] ; then | |
# echo $((++i)) | |
echo "BACKUP NOT DONE YET, CONTINUING. $((++i))" | |
sleep 2s | |
else | |
echo "BACKUP DONE, EXITING" | |
complete=1 | |
fi | |
done | |
sleep 1s | |
echo "Setting permissions on backup file" | |
chmod 777 $srcdir.$bktime | |
echo "Copying backup to disk" | |
mv $srcdir.$bktime $backupdir/$bkdir | |
echo "Backing up XML file" | |
virsh -c qemu:///system dumpxml --domain $vm > $backupdir/$bkdir/$vm.xml | |
echo "Done!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment