55 lines
1.6 KiB
Bash
55 lines
1.6 KiB
Bash
#!/bin/bash
|
|
|
|
#List of files to in/exclude form the backup located /.pxarexclude
|
|
|
|
#Scipt config
|
|
PBS_Host=<PBS_IP/Hostname>
|
|
PBS_Datastore=<DataStoreName>
|
|
PBS_User=root@pam!<APIKeyName>
|
|
export PBS_PASSWORD="<APIKey/Password>"
|
|
export PBS_FINGERPRINT="<PBS Fingerprint>"
|
|
PBS_NameSpace=PVE-Hosts
|
|
Run_Purge=false
|
|
Purge_DryRun=true
|
|
Run_GarbageColletion=false
|
|
|
|
##end of config
|
|
|
|
export PBS_LOG=info #Possible values are off, error, warn, info, debug and trace
|
|
export PBS_REPOSITORY="$PBS_User@$PBS_Host:$PBS_Datastore"
|
|
PVE_Hostname=$(hostname)
|
|
PBS_NameSpace=$PBS_NameSpace/"$PVE_Hostname"
|
|
|
|
echo "Generating package(APT) report"
|
|
apt-mark showmanual > /SystemRepport-APT
|
|
|
|
echo "Generating PVE report"
|
|
pvereport 2> /dev/null > /SystemRepport-PVE
|
|
|
|
echo "Running backup"
|
|
proxmox-backup-client backup root.pxar:/ --include-dev /etc/pve --ns $PBS_NameSpace
|
|
|
|
##Prunne while runing instead of using jobs in PBS
|
|
# Docs: https://pbs.proxmox.com/docs/backup-client.html#pruning-and-removing-backups
|
|
#
|
|
# Prune options --keep-last <N> --keep-hourly <N> --keep-daily <N> --keep-weekly <N> --keep-monthly <N> --keep-yearly <N>
|
|
#
|
|
# To test and generate a repport set Run_Purge and Purge_DryRun to true
|
|
# To use Run_Purge to true Purge_DryRun to false
|
|
|
|
|
|
if $Run_Purge; then
|
|
if ! $Purge_DryRun; then
|
|
echo purge
|
|
proxmox-backup-client prune host/"$PVE_Hostname" --keep-daily 1 --keep-weekly 3 --ns $PBS_NameSpace
|
|
else
|
|
echo dry
|
|
proxmox-backup-client prune host/"$PVE_Hostname" --dry-run --keep-daily 1 --keep-weekly 3 --ns $PBS_NameSpace | tee Pruge-DryRun
|
|
fi
|
|
fi
|
|
|
|
if $Run_GarbageColletion; then
|
|
proxmox-backup-client garbage-collect
|
|
fi
|
|
|
|
rm /SystemRepport-PVE /SystemRepport-APT |