#!/usr/bin/ksh # # Open and Close MV using API call to CDM # Written for AvonHCL / Nokia # v1.0 - James Pattinson - October 2025 # # usage: rubrik_mv_op.ksh -d -v -o # # -d Oracle DBNAME # -v Volume to operate on, logs or data # -o Operation to perform - open or close the MV get_script_dir() { # Portable way to get script directory for Linux and HP/UX (ksh compatible) src="$0" while [ -h "$src" ]; do dir=$(cd -P $(dirname "$src") >/dev/null 2>&1 && pwd) src=$(readlink "$src") case $src in /*) ;; # absolute path *) src="$dir/$src";; esac done cd -P $(dirname "$src") >/dev/null 2>&1 && pwd } MYDIR=$(get_script_dir) . $MYDIR/rbk_api.conf . $MYDIR/oracle_funcs.ksh usage() { echo "Usage: $0 -d -v -o " 1>&2 exit 1 } force=0 while getopts "d:v:o:" o; do case "${o}" in d) DBNAME=${OPTARG} ;; v) VOLUME=${OPTARG} ;; o) OPCODE=${OPTARG} ;; *) usage ;; esac done shift $((OPTIND-1)) if [ -z "${DBNAME}" ] || [ -z "${VOLUME}" ] || [ -z "${OPCODE}" ]; then usage fi # Script starts here get_short_hostname() { if hostname -s >/dev/null 2>&1; then hostname -s else hostname | awk -F. '{print $1}' fi } mv_name=$(get_short_hostname)_${DBNAME}_${VOLUME} get_mv case $OPCODE in open) open_mv ;; close) close_mv ;; *) echo "ERROR: Invalid opcode. Specify open or close" ; exit_with_error esac cleanup