Skip to content

Instantly share code, notes, and snippets.

@dot-mike
Created May 13, 2026 11:35
Show Gist options
  • Select an option

  • Save dot-mike/32dd4167966bb464374515ca54e2c44d to your computer and use it in GitHub Desktop.

Select an option

Save dot-mike/32dd4167966bb464374515ca54e2c44d to your computer and use it in GitHub Desktop.
Backup CheckMK site via OMD command
#!/bin/bash
# =============================================================================
# OMD Backup Script
# =============================================================================
PROGNAME=$(basename "$0")
FILEDATE=$(date '+%Y%m%d')
# --- Site Configuration ------------------------------------------------------
OMD_SITE="prod"
# Local backup settings
LOCAL_BACKUP_DIR="/root/omd_backup"
BACKUP_RETENTION_DAYS=7
# Notification settings
NOTIFY_EMAIL="support@company.com"
NOTIFY_SUBJECT_ERROR="OMD Backup Error!"
NOTIFY_SUBJECT_SUCCESS="OMD Backup Complete!"
# Derived values (do not edit)
BACKUP_FILENAME="omd_${OMD_SITE}_backup-${FILEDATE}.tgz"
BACKUP_PATH="${LOCAL_BACKUP_DIR}/${BACKUP_FILENAME}"
# =============================================================================
error_exit() {
local msg="${PROGNAME}: ${1:-"Unknown Error"}"
echo "$msg" >&2
/usr/bin/logger "$msg"
#mail -s "$NOTIFY_SUBJECT_ERROR" "$NOTIFY_EMAIL" <<< "$msg"
exit 1
}
# Stop OMD site
cmd=$(omd stop "$OMD_SITE" 2>&1) \
|| error_exit "Error on line $LINENO stopping site '$OMD_SITE': $cmd"
# Perform backup
cmd=$(omd backup "$OMD_SITE" "$BACKUP_PATH" 2>&1) \
|| error_exit "Error on line $LINENO creating backup: $cmd"
# Restart OMD site
cmd=$(omd start "$OMD_SITE" 2>&1) \
|| error_exit "Error on line $LINENO starting site '$OMD_SITE': $cmd"
# Purge local backups older than retention period
cmd=$(find "$LOCAL_BACKUP_DIR" -mindepth 1 -mtime "+${BACKUP_RETENTION_DAYS}" -delete 2>&1) \
|| error_exit "Error on line $LINENO purging old backups: $cmd"
/usr/bin/logger "OMD backup complete! Backup: $BACKUP_FILENAME"
#mail -s "$NOTIFY_SUBJECT_SUCCESS" "$NOTIFY_EMAIL" <<< "OMD backup complete! File: $BACKUP_FILENAME"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment