Skip to content

Commit

Permalink
Add execute file
Browse files Browse the repository at this point in the history
  • Loading branch information
rril authored Apr 30, 2019
0 parents commit 0abea08
Showing 1 changed file with 85 additions and 0 deletions.
85 changes: 85 additions & 0 deletions rbackupxi.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
#!/bin/bash
for block in "$@"
do
VNAM=$( echo $block | awk -F "=" '{print $1}' | sed -e 's/^ *//g' -e 's/ *$//g' )
VNAM=${VNAM//-/}
VVAL="$( echo $block | awk -F "=" '{print $2}' | sed -e 's/^ *//g' -e 's/ *$//g' )"
#VVAL=${VVAL//"/\"}
eval $VNAM="\"$VVAL\""
done

excludevm=${excludevm/ /\|}

if [ -z "$hostip" ]
then
echo "host-ip parameter DOES NOT set."
exit 1
fi

if [ -z "$backuppoint" ]
then
echo "backup-point parameter DOES NOT set."
exit 1
fi

if [ -z "`ssh "$hostip" \"[ -d $backuppoint ] && echo exists\"`" ]
then
echo "Directory $backuppoint DOES NOT exists."
exit 1
fi



if [ ! -z "$excludevm" ]
then
excludevm=${excludevm//,/|}
HOSTS_ID=`ssh "$hostip" vim-cmd vmsvc/getallvms | grep -Evi "vmid|$excludevm" | gawk '{print $1}' `
else
HOSTS_ID=`ssh "$hostip" vim-cmd vmsvc/getallvms | grep -vi "vmid" | gawk '{print $1}' `
fi

for HID in $HOSTS_ID
do
echo -n "||"
if [ "Powered on" = "`ssh "$hostip" vim-cmd vmsvc/power.getstate $HID | grep 'Powered on'`" ]
then
HOSTS_POWERON="$HOSTS_POWERON $HID"

fi
done
echo ""

for HID in $HOSTS_POWERON
do
echo "host $HID: "
DATASTORE_HOST=$(ssh "$hostip" vim-cmd vmsvc/get.datastores 14| grep url | awk '{print $2}')
LS=`ssh "$hostip" ls -l $(ssh "$hostip" vim-cmd vmsvc/get.datastores 14| grep url | awk '{print $2}')/.. | grep $(ssh "$hostip" vim-cmd vmsvc/get.datastores 14| grep url | awk -F / '{print $NF}') | awk '{printf "%s""|",$9}' | awk '{print substr($0,1,length($0)-1)}'`
DATASTORE_HOST_FS=$(ssh "$hostip" df | grep -E "$LS" | awk '{print $4}')
FILES_HOST_RAW=$(ssh "$hostip" vim-cmd vmsvc/get.filelayoutex $HID | grep name | awk -F = '{print $2}')
FILES_HOST=$(echo "$FILES_HOST_RAW" | awk '{print $2}'| cut -d'"' -f1)
VMX_HOST=$(echo "$FILES_HOST" | grep -E "\.vmx$")
VMDK_HOST=$(echo "$FILES_HOST" | grep -E "\.vmdk$")
VMDK_HOST_FS=$(ssh "$hostip" "cd $DATASTORE_HOST ; ls -l `echo $VMDK_HOST` 2> /dev/null" | awk '{sum += $5} END {print sum}')
if [ "$VMDK_HOST_FS" -gt "$DATASTORE_HOST_FS" ]
then
echo Snepshot Error $HID echo vmdk to bigger
exit 1
else
HOST_TARGET_BK="$backuppoint/$(ssh "$hostip" grep displayName $DATASTORE_HOST/$VMX_HOST |awk '{print substr($NF,2,length($NF)-2)}')"
echo copy VMX file to $HOST_TARGET_BK
ssh "$hostip" "rm -r \"$HOST_TARGET_BK-1\" && mv \"$HOST_TARGET_BK\" \"$HOST_TARGET_BK-1\""
ssh "$hostip" "mkdir \"$HOST_TARGET_BK\" && cp \"$DATASTORE_HOST/$VMX_HOST\" \"$HOST_TARGET_BK/\""

echo Take snapshot
ssh "$hostip" "vim-cmd vmsvc/snapshot.create $HID rbackup \"create by rbackup script for make clone to backup\" 0 0"
ssh "$hostip" "vim-cmd vmsvc/snapshot.get $HID"
ssh "$hostip" "cd \"$DATASTORE_HOST/\" && cp `echo $VMDK_HOST` \"$HOST_TARGET_BK/\""

echo Remove all snapshots
ssh "$hostip" "vim-cmd vmsvc/snapshot.removeall $HID"
ssh "$hostip" "vim-cmd vmsvc/snapshot.get $HID"

echo -n Complete in
date
fi
done

0 comments on commit 0abea08

Please sign in to comment.