GameServerManagers / GameServerManagers/LinuxGSM

[Feature]: LGSM command for restoring backups

Open
#4,507 1 comment 4 reactions 0 assignees View on GitHub
command: backup command: install type: feature
Dominant language
Shell
Stars
4.9k
Forks
864
PR merge metrics
No merged PRs in 30d

Description

### User story

As a server admin, I want LinuxGSM to handle backup restoration for me to minimize the downtime and work needed when restoring backups.

### Game

All

### Linux distro

Other

### Command

command: backup

### Further information

The command would use automatically or manually created backups to quickly restore the gameserver to a specific point in time by overwriting the backed up files. To avoid problems caused by newly created files that don't exist in a backup (such as new saves or player profiles), the entire installation should be deleted and replaced with the contents of the backup.

Restore a backup (prompt the user by listing all existing backups):
`./gameserver restore-backup`

Restore the latest backup:
`./gameserver restore-backup latest`

Restore a specific backup:
`./gameserver restore-backup "gameserver-2024-02-05-040000.tar.gz"`

Possible Problems:
- Replacing LGSM from within LGSM may prove difficult.
- Skipping the restoration of LGSM however could lead to incompatibilities between gameserver and LGSM

#
A future implementation of this/another command could also be useful for automatically applying manually created "backups" that have been prepared to introduce changes to game configurations, maps, mods or rules by overwriting only certain files. However, this will require a completely new backup procedure, as regular restoring of a backup will need to deal with unwanted files not included in the backup as listed above.

Restore a manually prepared "backup":
`./gameserver restore-backup "special-event.tar.gz"`

Contributor guide

Open the contributing guide

Research direction

Start at the `./gameserver` command entry point and trace the existing `backup` command and backup layout. Define how interactive, latest, and named restores should select archives, replace the installation, and handle LGSM itself. Done means all three invocation forms restore the selected backup without leaving files that were absent from it.

Written by the indexing model from the issue text.

Assessment

Tech stack
bash, shell
Domain
cli, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.