Skip to content

Instantly share code, notes, and snippets.

@szabbenjamin
Created April 7, 2025 21:08
Show Gist options
  • Select an option

  • Save szabbenjamin/a44538ebc73795c4a32e55531307664d to your computer and use it in GitHub Desktop.

Select an option

Save szabbenjamin/a44538ebc73795c4a32e55531307664d to your computer and use it in GitHub Desktop.
#!/bin/bash
# Konfigurálható változók
BACKUP_DIR="/mnt/pve/backups/backups" # A biztonsági mentés helye
VM_IDS="100 101 102 103 106 107 109 110 112 115 118 104 105 111 113" # A mentendő VM-ek vagy konténerek azonosítói
COMPRESSION="zstd" # Zstandard tömörítés
# Létrehozza a backup könyvtárat, ha nem létezik
mkdir -p "$BACKUP_DIR"
# Végigmegy minden VM ID-n és elvégzi a mentést
for VMID in $VM_IDS; do
# Ellenőrizzük, hogy létezik-e a VM
if qm status $VMID >/dev/null 2>&1; then
echo "Leállítás: VM $VMID"
qm shutdown $VMID --skiplock 1
# Várunk, amíg a VM teljesen leáll
while qm status $VMID | grep -q "running"; do
echo "Várakozás a VM $VMID leállására..."
sleep 5
done
echo "Biztonsági mentés indítása: VM $VMID"
vzdump $VMID --mode stop --compress $COMPRESSION --dumpdir "$BACKUP_DIR"
echo "Újraindítás: VM $VMID"
qm start $VMID
elif pct status $VMID >/dev/null 2>&1; then
echo "Leállítás: LXC $VMID"
pct shutdown $VMID
while pct status $VMID | grep -q "running"; do
echo "Várakozás az LXC $VMID leállására..."
sleep 5
done
echo "Biztonsági mentés indítása: LXC $VMID"
vzdump $VMID --mode stop --compress $COMPRESSION --dumpdir "$BACKUP_DIR"
echo "Újraindítás: LXC $VMID"
pct start $VMID
else
echo "HIBA: A(z) $VMID VM vagy LXC nem létezik!"
fi
done
# Opcionálisan törölhetjük a 180 napnál régebbi mentéseket
find "$BACKUP_DIR" -type f -mtime +180 -delete
echo "Feltöltés S3-ra"
aws s3 sync "$BACKUP_DIR" s3://bucket-name/backups --storage-class DEEP_ARCHIVE
echo "Backup completed successfully!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment