Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Proxmox PVE Host Config Backup Script

Proxmox PVE Host Config Backup Script

This script can be used to backup essential configuration files from the Proxmox Virtual Enivronment (PVE) host.

The script will create backups using tar with specified backup prefix and date and time stamp in the file name. Script will also delete backups that are older then number of days specified.

Create backup script file

To create backup script that will be executed every day we can create backup script in /etc/cron.daily/ folder. We need to make it writeable by root (creator) only, but readable and executable by everyone:

touch /etc/cron.daily/pvehost-backup
chmod 755 /etc/cron.daily/pvehost-backup

Copy and paste following script into the created file (e.g. using vim.tiny):

#!/bin/sh
BACKUP_PATH="/var/tmp/"
BACKUP_FILE="pve-host"
KEEP_DAYS=7
PVE_BACKUP_SET="/etc/pve/ /etc/lvm/ /etc/modprobe.d/ /etc/network/interfaces /etc/vzdump.conf /etc/sysctl.conf /etc/resolv.conf /etc/ksmtuned.conf /etc/hosts /etc/hostname /etc/cron* /etc/aliases"
PVE_CUSTOM_BACKUP_SET="/etc/apcupsd/ /etc/multipath/ /etc/multipath.conf"

tar -czf $BACKUP_PATH$BACKUP_FILE-$(date +%Y_%m_%d-%H_%M_%S).tar.gz --absolute-names $PVE_BACKUP_SET $PVE_CUSTOM_BACKUP_SET
find $BACKUP_PATH$BACKUP_FILE-* -mindepth 0 -maxdepth 0 -depth -mtime +$KEEP_DAYS -delete

Note: Please modify the PVE_CUSTOM_BACKUP_SET variable to fit your PVE host needs. You can leave it as empty string ("") if no host specific configuration is needed.

Don't forget to change path where to store backups, the best way is to store backups outside physical host, e.g. on attached NAS storage.

Modify variables

You can modify variables to fit backups for your individual hosts:

  • BACKUP_PATH to specifiy where to store backups,
  • BACKUP_FILE to specify backups file prefix,
  • KEEP_DAYS to specify how many old backups to keep (in days)
  • PVE_CUSTOM_BACKUP_SET to add your installation specific folders and/or files,
  • PVE_BACKUP_SET defines standard set of folders and config files for generic PVE host.
@timdonovanuk

This comment has been minimized.

Copy link

@timdonovanuk timdonovanuk commented Mar 12, 2020

Glad I found this, really amazing and thanks for sharing!

Have you tested the restore procedure - I assume it's just a case of extracting the tar over a fresh proxmox host install?

@mrpeardotnet

This comment has been minimized.

Copy link
Owner Author

@mrpeardotnet mrpeardotnet commented Mar 15, 2020

I usually copy files from archive to fresh host by hand. Not all files can be copied out of the box and sometimes needs to be edited.

@Uuugh

This comment has been minimized.

Copy link

@Uuugh Uuugh commented Jan 6, 2021

Thank you for sharing this script. Are there particular files that need to be modified if restoring a host on a single-host homelab?

Thanks again!

@bttd

This comment has been minimized.

Copy link

@bttd bttd commented Feb 23, 2021

Hi,

My question is the same as @Uuugh

@pharpe

This comment has been minimized.

Copy link

@pharpe pharpe commented Feb 28, 2021

I'm having an issue where my proxmox host lost network connectivity. I've been unable to resolve it so I'm considering restoring from backup. Can I boot from a usb drive and just copy the backup files back onto my hard drive?

@edobez

This comment has been minimized.

Copy link

@edobez edobez commented Mar 30, 2021

Just wanted to link this other script that has the same goal: https://github.com/DerDanilo/proxmox-stuff/blob/master/prox_config_backup.sh

@euro2

This comment has been minimized.

Copy link

@euro2 euro2 commented Apr 5, 2021

I'm having an issue where my proxmox host lost network connectivity. I've been unable to resolve it so I'm considering restoring from backup. Can I boot from a usb drive and just copy the backup files back onto my hard drive?

Consider plugging in the network cable in another NIC if you have one. I lost connectivity too but on my motherboard when i change hardware the nic ports get served up in a different order so proxmox grabs the wrong one and thinks its the right one.

I went through a full reinstall only to find out i had to plug in the cable in the other nic :/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment