54 lines
1.3 KiB
Bash
54 lines
1.3 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() {
|
|
checkBackupDir "${1}"
|
|
|
|
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() {
|
|
checkBackupDir "${1}"
|
|
|
|
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
|
|
}
|