Files
Zerto-MongoDB-Checkpoints-L…/ZertoMongoCheckpoint.sh
T
justin bf2ad2d5b1 Create ZertoMongoCheckpoint.sh
Version 2.0 of the MongoDB Zerto Checkpoint script. This version does not require any Powershell scripts.
2018-05-04 10:15:41 -04:00

49 lines
2.3 KiB
Bash

#!/bin/bash
##############################################################################
# ZertoMongoCheckpoint.sh
#
# Created by Justin Paul, Tech Alliances Architect, Zerto
# Contact at jp@zerto.com or on Twitter at @recklessop
#
# This script does the following:
# 1.) Lock MongoDB and flush data to disk.
# 2.) Call Zerto REST API and insert a User defined Checkpoint
# 3.) Unlock the MongoDB and resume normal operations
#
# You must provide the VPGID for the VPG that needs the checkpoint inserted.
# To get this information
##############################################################################
##### Variables #####
ZVMIP="172.16.1.20"
ZVMPORT="9669"
ZVMUSER="administrator@vsphere.local"
ZVMPWD="mypassword"
VPGID="97b4b6be-5447-491b-bd10-be3600c91ff0"
MONGOUSER="admin"
MONGOPASSWORD="password"
##### Insert Date and Time into the Log file #####
echo "$(date)" > ZertoCheckpointInsert.log
##### Login to Zerto REST API and check VPG name #####
curl -k -D responseHeader -H "Content-Type: application/json" -H "Accept: application/json" --user $ZVMUSER:$ZVMPWD https://${ZVMIP}:${ZVMPORT}/v1/session/add -d "{\"AuthenticationMethod\":0}"
COOKIE=`cat responseHeader | grep x-zerto-session`
SESSION=$(echo "$COOKIE"|tr -d '\r')
echo "---------------------------------" > ZertoCheckpointInsert.log
echo $SESSION >> ZertoCheckpointInsert.log
echo "---------------------------------" >> ZertoCheckpointInsert.log
#VPGLIST=$(curl -k -H "${SESSION}" -H "Content-Type: application/json" -H "Accept: application/json" https://${ZVMIP}:${ZVMPORT}/v1/vpgs)
##### Lock and Flush MySQL Databases #####
outputLock=$(mongo -u ${MONGOUSER} -p ${MONGOPASSWORD} --authenticationDatabase admin --eval 'db.fsyncLock()' 2>&1)
echo $outputLock >> ZertoCheckpointInsert.log
##### Insert Zerto User Checkpoint #####
INSERTOUTPUT=$(curl -k -H "${SESSION}" -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"checkpointName":"MongoDB Quiesced Checkpoint"}' https://${ZVMIP}:${ZVMPORT}/v1/vpgs/"${VPGID}"/Checkpoints)
echo $responseHeader >> ZertoCheckpointInsert.log
##### Lock and Flush MySQL Databases #####
outputUnlock=$(mongo -u ${MONGOUSER} -p ${MONGOPASSWORD} --authenticationDatabase admin --eval 'db.fsyncUnlock()' 2>&1)
echo $outputUnlock >> ZertoCheckpointInsert.log