#!/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() { src="$0" dir=$(cd -P "$(dirname "$src")" >/dev/null 2>&1 && pwd) echo "$dir" } MYDIR=$(get_script_dir) . $MYDIR/rubrik.conf . $MYDIR/oracle_funcs.ksh usage() { echo "Usage: $0 -d -v -o " echo " $0 -n -o " echo " -d Oracle DBNAME" echo " -v Volume to operate on, logs or data" echo " -o Operation to perform - open or close the MV" echo " -n Specify MV name directly (use only with -o)" exit 1 } force=0 MVNAME="" while getopts "d:v:o:n:" o; do case "${o}" in d) DBNAME=${OPTARG} ;; v) VOLUME=${OPTARG} ;; o) OPCODE=${OPTARG} ;; n) MVNAME=${OPTARG} ;; *) usage ;; esac done shift $((OPTIND-1)) # Validate options if [ -n "$MVNAME" ]; then # Direct MV name mode: require -n and -o only if [ -z "$OPCODE" ]; then usage fi mv_name="$MVNAME" elif [ -n "$DBNAME" ] && [ -n "$VOLUME" ] && [ -n "$OPCODE" ]; then # Standard mode: require -d, -v, -o mv_name=$(get_short_hostname)_${DBNAME}_${VOLUME} else usage fi # Script starts here get_short_hostname() { # Check OS type first - HP-UX hostname doesn't support -s os_type=$(uname -s) if [ "$os_type" = "HP-UX" ]; then hostname | awk -F. '{print $1}' else # Try -s flag on other systems if hostname -s >/dev/null 2>&1; then hostname -s else hostname | awk -F. '{print $1}' fi fi } get_mv case $OPCODE in open) open_mv ;; close) close_mv ;; *) echo "ERROR: Invalid opcode. Specify open or close" ; exit_with_error esac cleanup