pilot-backup
Automated backup of agent configuration and state files to trusted peers with encryption and versioning.
Commands
Backup Agent State
BACKUP_DEST="1:0001.AAAA.BBBB"
BACKUP_FILE="/tmp/pilot-backup-$(date +%Y%m%d_%H%M%S).tar.gz"
tar czf "$BACKUP_FILE" "$HOME/.pilot"/*.json
pilotctl --json send-file "$BACKUP_DEST" "$BACKUP_FILE"
rm "$BACKUP_FILE"
Restore from Backup
pilotctl --json send-message "$BACKUP_PEER" --data '{"type":"backup_request","date":"latest"}'
sleep 3
BACKUP_FILE=$(pilotctl --json received | jq -r '.received[0].filename')
tar xzf "$HOME/.pilot/received/$BACKUP_FILE" -C "$HOME/.pilot/"
Backup Rotation
BACKUP_STORAGE="$HOME/.pilot/backup-storage"
MAX_BACKUPS=7
ls -1t "$BACKUP_STORAGE"/pilot-backup-*.tar.gz | tail -n +$((MAX_BACKUPS + 1)) | xargs rm -f
Workflow Example
#!/bin/bash
# Automated backup management
BACKUP_STORAGE="$HOME/.pilot/backup-storage"
MAX_BACKUPS=7
mkdir -p "$BACKUP_STORAGE"
create_backup() {
local dest="$1"
local backup_file="/tmp/pilot-backup-$(date +%Y%m%d_%H%M%S).tar.gz"
tar czf "$backup_file" "$HOME/.pilot"/*.json
pilotctl --json send-file "$dest" "$backup_file"
cp "$backup_file" "$BACKUP_STORAGE/"
rm "$backup_file"
# Rotate old backups
ls -1t "$BACKUP_STORAGE"/pilot-backup-*.tar.gz | tail -n +$((MAX_BACKUPS + 1)) | xargs rm -f
}
create_backup "1:0001.AAAA.BBBB"
Dependencies
Requires pilot-protocol, pilotctl, jq, and tar/gzip.