Hostxpeed
Login Get Started →
Server Management

How to Schedule Automatic Backups

6 min read
4 views
Apr 30, 2026

Prerequisites

Before scheduling backups, make sure you have:

  • SSH access to your VPS
  • Root or sudo privileges
  • Sufficient storage for backups (local or remote)

Step 1: Create Backup Script

Connect to your VPS:

ssh hxroot@YOUR_SERVER_IP -p 22
sudo nano /usr/local/bin/backup.sh

Example backup script:

#!/bin/bash
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)
KEEP_DAYS=7

# Create backup directory if not exists
mkdir -p $BACKUP_DIR

# Backup website files
tar -czf $BACKUP_DIR/website_$DATE.tar.gz /var/www/html/

# Backup MySQL databases
mysqldump --all-databases > $BACKUP_DIR/mysql_$DATE.sql

# Remove backups older than KEEP_DAYS
find $BACKUP_DIR -type f -mtime +$KEEP_DAYS -delete

echo "Backup completed at $(date)" >> /var/log/backup.log

Make executable:

sudo chmod +x /usr/local/bin/backup.sh

Step 2: Test the Script

sudo /usr/local/bin/backup.sh

Check output:

ls -la /backup/
cat /var/log/backup.log

Step 3: Schedule with Cron

sudo crontab -e

Run daily at 2:00 AM:

0 2 * * * /usr/local/bin/backup.sh

Or weekly on Sunday at 3:00 AM:

0 3 * * 0 /usr/local/bin/backup.sh

Step 4: Remote Backup (Rsync to Another Server)

Add to backup script:

# Sync to remote backup server
rsync -avz $BACKUP_DIR/ user@remote-backup:/backups/$(hostname)/

Set up SSH keys for passwordless rsync:

ssh-keygen -t rsa -b 4096
ssh-copy-id user@remote-backup

Step 5: Email Notification on Backup Failure

Modify script:

if [ $? -eq 0 ]; then
    echo "Backup successful" | mail -s "Backup OK" admin@example.com
else
    echo "Backup failed!" | mail -s "Backup FAILED" admin@example.com
fi

Incremental Backups with rsync

#!/bin/bash
BACKUP_BASE="/backup"
DATE=$(date +%Y%m%d)
LATEST="$BACKUP_BASE/current"
SNAPSHOT="$BACKUP_BASE/snapshot_$DATE"

# Hard link-based incremental backup (like time machine)
rsync -avz --delete --link-dest=$LATEST /var/www/ $SNAPSHOT
rm -f $LATEST
ln -s $SNAPSHOT $LATEST

Using Hostxpeed Backup Features

Your Hostxpeed VPS may include automated backup options. Check your service details page for snapshot or backup features.

Restore from Backup

To restore website files:

tar -xzf /backup/website_20260428.tar.gz -C /

To restore MySQL:

mysql < /backup/mysql_20260428.sql

✅ Automatic backups have been scheduled. Verify regularly that backups are being created successfully.

Was this article helpful?