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