35 lines
1.4 KiB
Bash
Executable File
35 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Retrieve environment variables
|
|
PRIVATE_KEY="${PRIVATE_KEY}"
|
|
SSH_PORT="${SSH_PORT}"
|
|
REMOTE_USER="${REMOTE_USER}"
|
|
SERVER_IP="${SERVER_IP}"
|
|
BACKUP_DIR="/home/$REMOTE_USER/system_config_backup"
|
|
|
|
set -e # Exit on error
|
|
|
|
# Create the backup directory remotely
|
|
ssh -i $PRIVATE_KEY -p $SSH_PORT $REMOTE_USER@$SERVER_IP "mkdir -p $BACKUP_DIR"
|
|
|
|
# Backup UFW configurations
|
|
ssh -i $PRIVATE_KEY -p $SSH_PORT $REMOTE_USER@$SERVER_IP "sudo cp -r /etc/ufw/* $BACKUP_DIR/ufw/"
|
|
|
|
# Backup Fail2Ban configurations
|
|
ssh -i $PRIVATE_KEY -p $SSH_PORT $REMOTE_USER@$SERVER_IP "mkdir -p $BACKUP_DIR/fail2ban && sudo cp -r /etc/fail2ban/* $BACKUP_DIR/fail2ban/"
|
|
|
|
# Backup SSH configurations
|
|
ssh -i $PRIVATE_KEY -p $SSH_PORT $REMOTE_USER@$SERVER_IP "sudo cp /etc/ssh/sshd_config $BACKUP_DIR/"
|
|
|
|
# Backup Systemd configurations
|
|
ssh -i $PRIVATE_KEY -p $SSH_PORT $REMOTE_USER@$SERVER_IP "mkdir -p $BACKUP_DIR/systemd && sudo cp -r /etc/systemd/system/* $BACKUP_DIR/systemd/"
|
|
|
|
ssh -i $PRIVATE_KEY -p $SSH_PORT $REMOTE_USER@$SERVER_IP "mkdir -p $BACKUP_DIR/caddy && sudo cp -r /var/lib/caddy/.local/share/caddy/ $BACKUP_DIR/"
|
|
|
|
# Tar the backup directory
|
|
ssh -i $PRIVATE_KEY -p $SSH_PORT $REMOTE_USER@$SERVER_IP "sudo tar czvf ~/system_config_backup.tar.gz -C ~ system_config_backup/"
|
|
|
|
# Optionally fetch the backup to local computer
|
|
scp -i $PRIVATE_KEY -P $SSH_PORT $REMOTE_USER@$SERVER_IP:~/system_config_backup.tar.gz .
|
|
|
|
echo "Backup process completed and fetched to local machine!" |