#!/bin/bash # # /usr/bin/leoclient2-snapshot-create # # Usage: leoclient2-snapshot-create -m -s # Ohne Snapshot-name wird der standard-Snapshot gesetzt # Script als root ausführen # etcdir="/etc/leoclient2/machines" OPTIND=1 VMPATH="/var/virtual" vm="" S_NAME="standard" MACHINENAME="" MACHINEPATH="" while getopts "m:s:" opt; do case "$opt" in m) vm=$OPTARG ;; s) S_NAME=$OPTARG ;; esac done shift $((OPTIND-1)) [ "$1" = "--" ] && shift for file in "$etcdir"/*.conf; do pfad=`cat $file` b=$(basename "$pfad") if [ "$b" = "$vm" ] ; then MACHINENAME=$b MACHINEPATH=$pfad fi done if [ "$MACHINENAME" = "" ] ; then echo "ERROR: Virtual Machine $vm wurde nicht gefunden!" exit 1 fi snapshotdir="$MACHINEPATH/Snapshots" s_filepfad=`find $snapshotdir -name "*.vdi" -print -quit` if [ "$s_filepfad" = "" ] ; then echo "ERROR: Kein Snapshot *.vdi gefunden!" exit 1 fi SNAPSHOTPATH="$MACHINEPATH/snapshot-store/$S_NAME" if [ -d "$SNAPSHOTPATH" ]; then rm -Rf $SNAPSHOTPATH/* else mkdir "$SNAPSHOTPATH" fi cp -f "$s_filepfad" "$SNAPSHOTPATH" FILESIZE=$(stat -c%s "$s_filepfad") echo $FILESIZE > "$SNAPSHOTPATH/filesize.vdi" sf=$(basename "$s_filepfad") z_filepfad="$SNAPSHOTPATH/$sf.zip" zip -9 -j $z_filepfad $s_filepfad FILESIZE=$(stat -c%s "$z_filepfad") echo $FILESIZE > "$SNAPSHOTPATH/filesize.vdi.zipped" chmod -R 755 "$SNAPSHOTPATH" echo " OK: Snapshot $sf wurde als $S_NAME gesetzt." exit 0