Created
May 13, 2026 11:35
-
-
Save dot-mike/32dd4167966bb464374515ca54e2c44d to your computer and use it in GitHub Desktop.
Backup CheckMK site via OMD command
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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