bin-there-done-that/miscellaneous/bash/dr_mirror_to_linode.sh

45 lines
1.3 KiB
Bash
Raw Normal View History

#!/bin/bash
# === CONFIG ===
ZFS_MOUNT="/assets"
LINODE_ALIAS="linode"
KRANG_BOT_TOKEN="your-bot-token-here"
CHAT_ID="your-chat-id-here"
MINIO_SERVICE="minio"
LOG_DIR="/home/doc/genesisdr" # <- customize this!
# === SETUP ===
mkdir -p "$LOG_DIR"
TIMESTAMP=$(date '+%Y-%m-%d_%H-%M-%S')
LOG_FILE="$LOG_DIR/mirror_$TIMESTAMP.log"
# === START LOGGING ===
exec > >(tee -a "$LOG_FILE") 2>&1
echo "🔐 Genesis DR MinIO Mirror Log — $TIMESTAMP"
echo "Log file: $LOG_FILE"
echo "Starting DR mirror from $ZFS_MOUNT to $LINODE_ALIAS"
echo "-------------------------------------------"
# === SYNC ===
mc mirror --overwrite "$ZFS_MOUNT" "$LINODE_ALIAS" --quiet
MIRROR_STATUS=$?
if [[ $MIRROR_STATUS -ne 0 ]]; then
echo "❌ Mirror failed with exit code $MIRROR_STATUS"
curl -s -X POST https://api.telegram.org/bot$KRANG_BOT_TOKEN/sendMessage \
-d chat_id="$CHAT_ID" \
-d text="❌ MinIO DR mirror to Linode FAILED. MinIO remains offline. Log: $LOG_FILE"
exit 1
fi
echo "✅ Mirror complete. Starting MinIO..."
systemctl start "$MINIO_SERVICE"
curl -s -X POST https://api.telegram.org/bot$KRANG_BOT_TOKEN/sendMessage \
-d chat_id="$CHAT_ID" \
-d text="✅ MinIO DR mirror to Linode completed successfully. MinIO is online. Log: $LOG_FILE"
echo "🚀 All done."
echo "-------------------------------------------"