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.
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
#!/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.
You can modify variables to fit backups for your individual hosts:
BACKUP_PATHto specifiy where to store backups,
BACKUP_FILEto specify backups file prefix,
KEEP_DAYSto specify how many old backups to keep (in days)
PVE_CUSTOM_BACKUP_SETto add your installation specific folders and/or files,
PVE_BACKUP_SETdefines standard set of folders and config files for generic PVE host.