LOcked key method on backup linode

from="PROD_IP_HERE",command="/usr/local/bin/run-backup.sh",no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAAB3... (rest of your key)

Create a simple script at /usr/local/bin/run-backup.sh on the backup machine:

#!/bin/bash
# 1. Sync the Gitea Database (assuming it was dumped to a file)
# 2. Re-run the Git Clone/Pull for your radar & website projects
cd /path/to/backup/folder
git pull origin main || git clone http://your-gitea-url/repo.git .

# Optional: Log the backup time
echo "Backup successful: $(date)" >> /var/log/backup_history.log


from="PROD_IP",command="/usr/share/doc/rsync/scripts/rrsync -ro /mnt/backups/ilovearthur/",restrict ssh-rsa AAAAB3...

#!/bin/bash
# Sync critical system and user data
rsync -az --delete /etc /var /home root@backup.ilovearthur.org:/





Wrapper script on backup server

#!/bin/bash
case "$SSH_ORIGINAL_COMMAND" in
    rsync*)
        # Allows rsync to only touch the designated backup folder
        $SSH_ORIGINAL_COMMAND
        ;;
    "git-sync")
        # Custom command to refresh your Gitea mirrors
        cd /home/backups/radar-repo
        git pull || git clone http://your-gitea-url/repo.git .
        ;;
    *)
        echo "Access Denied: Command not permitted."
        exit 1
        ;;
esac

Authorized keys file:

from="PROD_IP",command="/usr/local/bin/backup-handler.sh",no-agent-forwarding,no-port-forwarding,no-pty ssh-rsa AAAAB3...


from="192.0.2.1,2001:db8::1",command="/usr/local/bin/backup-handler.sh",no-pty ... [your-ssh-key]

