summaryrefslogtreecommitdiff
path: root/dr_mirror_to_linode.sh
diff options
context:
space:
mode:
Diffstat (limited to 'dr_mirror_to_linode.sh')
-rwxr-xr-xdr_mirror_to_linode.sh44
1 files changed, 44 insertions, 0 deletions
diff --git a/dr_mirror_to_linode.sh b/dr_mirror_to_linode.sh
new file mode 100755
index 0000000..b15ad97
--- /dev/null
+++ b/dr_mirror_to_linode.sh
@@ -0,0 +1,44 @@
+#!/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 "-------------------------------------------"