blob: d34e56ea9ea1d751599aaf0b09187fc5439fb320 (
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#!/bin/bash
set -euo pipefail
# === SSH Hosts ===
SHREDDER_HOST="doc@shredder.sshjunkie.com"
PORTAL_HOST="root@portal.genesishostingtechnologies.com"
DA_HOST="root@da.genesishostingtechnologies.com"
VAULT_HOST="root@thevault.bounceme.net"
DATE=$(date +%Y%m%d%H%M%S)
# === Telegram Setup ===
TG_TOKEN="7277705363:AAGSw5Pmcbf7IsSyZKMqU6PJ4VsVwdKLRH0"
TG_CHAT_ID="1559582356"
send_telegram() {
local message="$1"
curl -s -X POST "https://api.telegram.org/bot$TG_TOKEN/sendMessage" \
-d "chat_id=$TG_CHAT_ID&text=$message"
}
send_telegram "๐ง Starting V2 Direct-to-Vault Backup Orchestration..."
# === Sanity Checks on TheVault and Shredder Mounts ===
send_telegram "๐งช Sanity check: vault & shredder mounts..."
#ssh -o BatchMode=yes $VAULT_HOST "zfs mount -a && ls /backups/azuracast /backups/krang /backups/directadmin" || send_telegram "โ Vault sanity check FAILED!"
#ssh -o BatchMode=yes $SHREDDER_HOST "
# zfs mount assets/splmedia &&
# zfs mount assets/azuracast &&
# zfs mount assets/splshows &&
# ls /assets/splmedia /assets/azuracast /assets/splshows
#"
# === 1๏ธโฃ Direct SPL data: Shredder โ TheVault ===
send_telegram "๐ Syncing SPL data directly from Shredder to TheVault..."
ssh -o BatchMode=yes $SHREDDER_HOST "rsync -avz /mnt/spl/splmedia/ $VAULT_HOST:/backups/splmedia/$DATE/"
ssh -o BatchMode=yes $SHREDDER_HOST "rsync -avz /mnt/spl/splassets/ $VAULT_HOST:/backups/splassets/$DATE/"
ssh -o BatchMode=yes $SHREDDER_HOST "rsync -avz /mnt/spl/splshows/ $VAULT_HOST:/backups/splshows/$DATE/"
send_telegram "โ
SPL data sync complete!"
# === 2๏ธโฃ Direct AzuraCast media: Shredder โ TheVault ===
send_telegram "๐ Syncing AzuraCast media directly from Shredder to TheVault..."
ssh -o BatchMode=yes $SHREDDER_HOST "rsync -avz /mnt/shredder.sshjunkie.com/azuracast/ $VAULT_HOST:/backups/azuracast/$DATE/"
send_telegram "โ
AzuraCast media sync complete!"
# === 3๏ธโฃ Direct AzuraCast configs: Portal โ TheVault ===
send_telegram "๐ Syncing AzuraCast configs from Portal to TheVault..."
ssh -o BatchMode=yes $PORTAL_HOST "rsync -avz /var/azuracast/.env /var/azuracast/docker-compose.yml /var/azuracast/stations $VAULT_HOST:/backups/azuracast/configs/$DATE/"
send_telegram "โ
AzuraCast configs sync complete!"
# === 4๏ธโฃ Direct AzuraCast DB dump: Portal โ TheVault ===
send_telegram "๐ Dumping and pushing AzuraCast DB from Portal to TheVault..."
ssh -o BatchMode=yes $PORTAL_HOST "pg_dump -U postgres azuracast | ssh $VAULT_HOST 'cat > /backups/azuracast/configs/$DATE/azuracast.sql'"
send_telegram "โ
AzuraCast DB push complete!"
# === 5๏ธโฃ Direct DirectAdmin backup: Portal โ TheVault ===
send_telegram "๐ Syncing DirectAdmin configs from Portal to TheVault..."
ssh -o BatchMode=yes $PORTAL_HOST "rsync -avz /usr/local/directadmin/data/admin/ $VAULT_HOST:/backups/directadmin/$DATE/"
send_telegram "โ
DirectAdmin sync complete!"
# === 6๏ธโฃ Krang's Proxmox configs: Krang โ TheVault ===
send_telegram "๐ Syncing Krang configs to TheVault..."
rsync -avz /etc/pve $VAULT_HOST:/backups/krang/$DATE/pve/
rsync -avz /etc/network/interfaces $VAULT_HOST:/backups/krang/$DATE/network/
rsync -avz /etc/ssh $VAULT_HOST:/backups/krang/$DATE/ssh/
send_telegram "โ
Krang configs push complete!"
# === ๐ All done! ===
send_telegram "๐ V2 Direct-to-Vault Backup COMPLETED!"
exit 0
|