summaryrefslogtreecommitdiff
path: root/dr_mirror_to_linode.sh
blob: b15ad97465cfb38cb0fe6fb43c19134c4fbc565f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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 "-------------------------------------------"