pms-cli/functions/backup

50 lines
1.2 KiB
Bash

#!/usr/bin/env bash
function backup_help() {
usage_general
cat<<EOF
commands:
create [servername]
destroy [servername] [backup-name]
list [servername]
EOF
}
function backup_create() {
checkBackupDir "${1}"
local backupdir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/backup"
local datadir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data"
tar -czf "$backupdir/${1}-$(date '+%d-%m-%Y_%T').tar.gz" \
-C "$datadir" logs/ \
-C "$datadir" plugins/ \
-C "$datadir" crash-reports \
-C "$datadir" world/ \
-C "$datadir" world_nether/ \
-C "$datadir" world_the_end/
}
function backup_destroy() {
local backupdir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/backup"
if [[ ! -f "${backupdir}/${2}.tar.gz" ]]; then
log e "Backup ${2%} does not exist! Check again using '$(basename 0) backup list'"
exit 1
fi
rm "${backupdir}/${2}.tar.gz"
}
function backup_list() {
local backupdir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/backup"
local found_backups=($(find "$backupdir" -type f -print))
if [[ "${#found_backups[@]}" -eq 0 ]]; then
log i "No backups found for '$1'"
exit 0
fi
log i "Found ${#found_backups[@]} backups:"
for backup in "${found_backups[@]}"; do
echo "- $(basename ${backup%%.*})"
done
}