#!/bin/bash
set -u
# Version ID Block. Relies on +k filetype modifier.
#------------------------------------------------------------------------------
# shellcheck disable=SC2016
declare VersionID='$Id: //p4-sdp/dev_c2s/Server/Unix/p4/common/bin/opt_perforce_sdp_backup.sh#3 $ $Change: 31580 $'
declare VersionStream=${VersionID#*//}; VersionStream=${VersionStream#*/}; VersionStream=${VersionStream%%/*};
declare VersionCL=${VersionID##*: }; VersionCL=${VersionCL%% *}
declare Version=${VersionStream}.${VersionCL}
[[ "$VersionStream" == r* ]] || Version="${Version^^}"
declare ThisScript="${0##*/}"
declare ThisUser=
declare ThisHost=${HOSTNAME%%.*}
declare PerforcePackageBase=/opt/perforce
declare SDPPackageBase="$PerforcePackageBase/helix-sdp"
declare BackupBase="/hxdepots/backup"
declare BackupDir="$BackupBase/opt_perforce_helix-sdp.$ThisHost"
declare RsyncCmd=
declare -i Debug=${SDP_DEBUG:-0}
declare -i ErrorCount=0
#==============================================================================
# Local Functions
function msg () { echo -e "$*"; }
function dbg () { [[ "$Debug" -eq 0 ]] || msg "DEBUG: $*"; }
function errmsg () { msg "\\nError: ${1:-Unknown Error}\\n"; ErrorCount+=1; }
function bail () { errmsg "${1:-Unknown Error}"; exit "${2:-1}"; }
ThisUser=$(id -n -u)
msg "Started $ThisScript version $Version as $ThisUser@$ThisHost on $(date)."
dbg "Starting Preflight Checks."
if [[ "$ThisUser" == root ]]; then
dbg "Verified: Running as root"
else
errmsg "Run this as root, not $ThisUser."
fi
if [[ -d "$SDPPackageBase" ]]; then
dbg "Verified: $SDPPackageBase directory exists."
else
errmsg "SDP OS Package Structure [$SDPPackageBase] does not exists. Use this script only if that structure exists."
fi
mkdir -p "$BackupBase" ||\
errmsg "Could not do: mkdir -p \"$BackupBase\""
if [[ -d "$BackupBase" && -w "$BackupBase" ]]; then
dbg "Verified: $BackupBase directory exists and is writable."
else
errmsg "The BackupBase directory [$BackupBase] does not exist or is not writable."
fi
if [[ "$ErrorCount" -eq 0 ]]; then
dbg "Preflight checks OK."
else
bail "Aborting due to failed preflight checks."
fi
RsyncCmd="rsync -av $SDPPackageBase/ $BackupDir"
if eval "$RsyncCmd"; then
msg "SDP Package Backup to $BackupDir was successful."
else
bail "SDP Package Backup to $BackupDir failed."
fi
exit "$ErrorCount"
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #3 | 31580 | C. Thomas Tyler |
Merge dev->dev_c2s. Several interactive merges were required, mostly due to the change to version strings. |
||
| #2 | 31472 | C. Thomas Tyler |
Updated bash scripts and bash template to new file versioning scheme. Modernized template bash script. |
||
| #1 | 31399 | C. Thomas Tyler | Populate -r -S //p4-sdp/dev_c2s. | ||
| //p4-sdp/dev/Server/Unix/p4/common/bin/opt_perforce_sdp_backup.sh | |||||
| #1 | 31397 | C. Thomas Tyler | Populate -b SDP_Classic_to_Streams -s //guest/perforce_software/sdp/...@31368. | ||
| //guest/perforce_software/sdp/dev/Server/Unix/p4/common/bin/opt_perforce_sdp_backup.sh | |||||
| #2 | 31051 | C. Thomas Tyler | Tweaked to create backup dir if needed. | ||
| #1 | 31050 | C. Thomas Tyler |
Added script to back SDP OS Package Structure. Modified sdp_upgrade.sh to install a systemd oneshot service to call this script if operating on a system using the SDP OS Package Structure (i.e. a systemd where /opt/perforce/helix-sdp exists). |
||