# 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