valheim-backup-server

# vi backup.sh

---------------- file contents ----------

#!/bin/bash
####################################
#
# Backup Valheim Saved game to a
# specified folder.
#
####################################

# What to backup.
backup_files="/home/steam/.config/unity3d/IronGate/Valheim/worlds"
backup_file_name="valheim"

# Specify which directory to backup to.
# Make sure you have enough space to hold {n} days of backups.
dest="/home/steam/backups"

# Create backup archive filename.
day=$(date +"%Y-%m-%d_%H-%M-%S")
archive_file="$day-$backup_file_name.tar.gz"

# Stop valheimserver Server
systemctl stop valheimserver

# Backup the files using tar.
tar zcvf $dest/$archive_file $backup_files

# Clear backups
/home/steam/clear_backups.sh

# Start valheimserver Server
systemctl start valheimserver

---------------- end file contents ----------



# chmod +x backup.sh



# vi clear_backups.sh

#!/bin/bash
####################################
#
# Clean up Valheim saved game to a
# specified folder.
#
####################################

# -mtime +30 means any file older than 30 days
find /home/steam/backups -type f -mtime +30 -exec rm -f {} \;



# chmod +x clear_backups.sh



# crontab -l

0 3 * * * /home/steam/backup.sh




Restoring a backup:

E.g.

# Stop Valheim Server
systemctl stop valheimserver

# Remove existing data
rm -rf /home/steam/.config/unity3d/IronGate/Valheim/worlds/*

# Restore a saved file.
tar -xvf /home/steam/backups/2021-02-18_03-00-01-valheim.tar.gz -C /

# Restore permissions on files
chown steam:steam -R /home/steam/.config/unity3d/IronGate/Valheim/worlds

# Start Valheim Server
systemctl start valheimserver