Add Scripts/Bash/ProxmoxVE/Deeplab Rollback Script.md
All checks were successful
GitOps Automatic Deployment / GitOps Automatic Deployment (push) Successful in 8s
All checks were successful
GitOps Automatic Deployment / GitOps Automatic Deployment (push) Successful in 8s
This commit is contained in:
62
Scripts/Bash/ProxmoxVE/Deeplab Rollback Script.md
Normal file
62
Scripts/Bash/ProxmoxVE/Deeplab Rollback Script.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
## Purpose
|
||||||
|
This script is ran via cronjob on `cluster-node-02` at midnight to rollback the deeplab environment automatically to a previous snapshot nightly.
|
||||||
|
|
||||||
|
### Bash Script
|
||||||
|
|
||||||
|
```sh title="/root/deeplab-rollback.sh"
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# ProxmoxVE Nightly DeepLab Rollback Script
|
||||||
|
|
||||||
|
SNAPNAME="ROLLBACK"
|
||||||
|
|
||||||
|
DC=140
|
||||||
|
WIN10=141
|
||||||
|
WIN11=111
|
||||||
|
ALL=("$DC" "$WIN10" "$WIN11")
|
||||||
|
|
||||||
|
log(){ echo "[$(date '+%F %T')] $*"; }
|
||||||
|
|
||||||
|
# Force Stop DeepLab VMs
|
||||||
|
for id in "${ALL[@]}"; do
|
||||||
|
log "Force stopping VM $id"
|
||||||
|
/usr/sbin/qm stop "$id" || true
|
||||||
|
done
|
||||||
|
|
||||||
|
# Rollback Snapshots
|
||||||
|
for id in "${ALL[@]}"; do
|
||||||
|
log "Rolling back VM $id to snapshot $SNAPNAME"
|
||||||
|
/usr/sbin/qm rollback "$id" "$SNAPNAME"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Start DC
|
||||||
|
log "Starting DC ($DC)"
|
||||||
|
/usr/sbin/qm start "$DC"
|
||||||
|
|
||||||
|
# Wait 2 minutes
|
||||||
|
log "Waiting 2 minutes for DC to initialize..."
|
||||||
|
sleep 120
|
||||||
|
|
||||||
|
# Start Win10 + Win11
|
||||||
|
log "Starting WIN10 ($WIN10) and WIN11 ($WIN11)"
|
||||||
|
/usr/sbin/qm start "$WIN10" &
|
||||||
|
/usr/sbin/qm start "$WIN11" &
|
||||||
|
wait
|
||||||
|
|
||||||
|
log "Lab Rollback Complete."
|
||||||
|
```
|
||||||
|
|
||||||
|
### Crontab Scheduling
|
||||||
|
Type `crontab -e` to add an entry to run the job at midnight every day.
|
||||||
|
|
||||||
|
=== "With Logging"
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
0 0 * * * /root/deeplab-rollback.sh >> /var/log/deeplab-rollback.log 2>&1
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Without Logging"
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
0 0 * * * /root/deeplab-rollback.sh 2>&1
|
||||||
|
```
|
||||||
|
```sh title="crontab -e"
|
||||||
Reference in New Issue
Block a user