Back to blog
January 13, 2026Guides

How to Configure Automatic Backups on Linux Server

Step-by-step guide on setting up automated backup scripts using cron jobs for files and databases.

How to Configure Automatic Backups on Linux Server

Regular backups are essential for protecting your data. This guide shows you how to set up automatic backups for your files and databases using shell scripts and cron jobs on your Hiddence server.

Creating Backup Script

Create a backup script for your files:

bash
sudo nano /usr/local/bin/backup.sh
#!/bin/bash
BACKUP_DIR="/backups"
SOURCE_DIR="/var/www"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz $SOURCE_DIR
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/backup.sh

Setting Up Cron Job

Schedule automatic backups using cron:

bash
sudo crontab -e
# Add this line to run backup daily at 2 AM
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Database Backup Script

Create script for MySQL database backups:

bash
sudo nano /usr/local/bin/db_backup.sh
#!/bin/bash
BACKUP_DIR="/backups/db"
DB_NAME="your_database"
DB_USER="root"
DB_PASS="your_password"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_backup_$DATE.sql
gzip $BACKUP_DIR/db_backup_$DATE.sql
find $BACKUP_DIR -name "db_backup_*.sql.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/db_backup.sh

Remote Backup Storage

Copy backups to remote server using rsync or SCP:

bash
#!/bin/bash
BACKUP_DIR="/backups"
REMOTE_HOST="backup-server.com"
REMOTE_USER="backup"
REMOTE_DIR="/backups"
rsync -avz -e ssh $BACKUP_DIR/ $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/

Backup Retention Policy

Configure retention to keep backups for specific period:

bash
# Keep daily backups for 7 days
find /backups -name "backup_*.tar.gz" -mtime +7 -delete

# Keep weekly backups for 4 weeks
find /backups/weekly -name "backup_*.tar.gz" -mtime +28 -delete

# Keep monthly backups for 12 months
find /backups/monthly -name "backup_*.tar.gz" -mtime +365 -delete

Backup Best Practices

  • Test backup restoration regularly
  • Store backups in multiple locations
  • Encrypt sensitive backup data
  • Monitor backup logs for errors
  • Document your backup procedures
  • Set up alerts for backup failures