CtrlOps
|Docs
Troubleshooting

Backup Not Running

Troubleshooting backup failures and scheduling issues

Your scheduled backup isn't running? Here's how to diagnose and fix common backup problems.

Quick Checks

1. Is the Job Enabled?

In CtrlOps:

  1. Go to Backup tab
  2. Check if job toggle is ON (green)
  3. Verify "Active" status shows ✅

2. Check Last Run Time

Look at the job details:

  • Last Run: Should show recent date/time
  • Next Run: Should show upcoming scheduled time
  • Status: Should show "Success" or "Pending"

3. Review Error Messages

Click on failed backup to see:

  • Error code
  • Error description
  • Log output
  • Timestamp

Common Issues

"Connection Failed"

What it means: CtrlOps can't connect to backup destination.

Solutions:

S3/Cloud Storage:

  • ✅ Verify Access Key ID is correct
  • ✅ Check Secret Access Key hasn't expired
  • ✅ Ensure bucket exists and is accessible
  • ✅ Check bucket region matches configuration
  • ✅ Verify IAM permissions (needs s3:PutObject)

Remote Server (SFTP):

  • ✅ Server is online
  • ✅ SSH key has access
  • ✅ Destination directory exists
  • ✅ Disk space available on destination

Local Drive:

  • ✅ Drive is mounted
  • ✅ Path exists
  • ✅ Write permissions granted
  • ✅ Disk space available

"Permission Denied"

Destination side:

# Check destination permissions
ls -la /backup/directory

# Fix ownership
sudo chown backup-user:backup-group /backup/directory
chmod 755 /backup/directory

Source side:

  • Files might be locked by running process
  • Database might be actively writing
  • Try adding pre-backup script to pause services

"Disk Full"

Check space:

df -h

Solutions:

  1. Increase retention cleanup

    • Reduce number of backups kept
    • Shorten retention period
  2. Enable compression

    • Higher compression ratio
    • May increase backup time
  3. Add storage

    • Expand existing volume
    • Add new backup destination
  4. Manual cleanup

    # Remove old backups manually
    find /backup/path -name "*.tar.gz" -mtime +30 -delete

"Backup Size Exceeds Limit"

Check quota:

  • Free tier: 10 GB per backup
  • Pro tier: 500 GB per backup
  • Enterprise: Unlimited

Reduce backup size:

  • Exclude cache directories (/tmp, /var/cache)
  • Don't backup logs (use log rotation)
  • Exclude node_modules, vendor directories
  • Use exclusions list

"Timeout"

Causes:

  • Network slow/unstable
  • Backup too large
  • Destination throttling

Fixes:

  • Increase timeout setting (Settings > Backup > Timeout)
  • Use chunked uploads
  • Schedule during off-peak hours
  • Enable compression (reduces transfer size)

"Database Locked"

Issue: Can't backup database while it's writing.

Solutions:

For MySQL:

# Create snapshot for consistent backup
mysql -e "FLUSH TABLES WITH READ LOCK;"
# Run backup
mysql -e "UNLOCK TABLES;"

Better approach - Use pre-backup script:

#!/bin/bash
# Pre-backup: Create MySQL dump
mysqldump -u root -p database > /tmp/database_backup.sql

# Post-backup: Clean up
rm /tmp/database_backup.sql

Or use point-in-time snapshots:

  • RDS: Automated snapshots
  • Self-hosted: LVM snapshots
  • Cloud: Volume snapshots

Scheduling Issues

"Job Never Starts"

Check cron service:

sudo systemctl status cron
sudo service cron status

Verify scheduler is running: In CtrlOps: Settings > Scheduler > Status should be "Running"

"Runs at Wrong Time"

Timezone mismatch:

  • Check server timezone: timedatectl
  • Check CtrlOps timezone setting
  • Align both to same timezone

Daylight Saving Time:

  • Some schedules may shift by 1 hour
  • Use UTC to avoid DST issues

"Missed Scheduled Run"

Reasons:

  • Server was offline
  • CtrlOps wasn't running
  • Previous backup was still running

Enable "Catch-up" mode: Settings > Backup > Run missed jobs when system comes online

Partial Backup Failures

"Some Files Failed"

Common causes:

  • Files were deleted during backup
  • Permission changes mid-backup
  • Files locked by other processes

Solution: Review exclusion patterns:

# Exclude patterns
/tmp/*
/var/run/*
/proc/*
/sys/*
*.pid
*.sock

"Database Backup Failed, Files Succeeded"

Database-specific issues:

  1. Wrong credentials

    • Check database username/password
    • Verify user has backup privileges
  2. Database offline

    • Check service status: systemctl status mysql
  3. Insufficient permissions

    GRANT SELECT, LOCK TABLES ON *.* TO 'backup_user'@'localhost';

Verification Failures

"Checksum Mismatch"

What it means: Backup file corrupted during transfer.

Fixes:

  • Retry backup
  • Check network stability
  • Enable transfer verification
  • Use different destination temporarily

"Backup Verification Failed"

Test restoration:

# Try restoring to test location
tar -tzf backup.tar.gz > /dev/null

# If using database
gunzip < backup.sql.gz | mysql --dry-run

Notification Issues

"Not Getting Emails"

Check:

  • Email address correct
  • Not in spam folder
  • SMTP settings configured (Settings > Notifications)

"Getting Too Many Emails"

Adjust notification settings:

  • ✅ Only on failure
  • ⬜ On success (disable)
  • ✅ Daily summary only

Performance Issues

"Backup Takes Too Long"

Benchmark current speed:

# Test write speed to destination
dd if=/dev/zero of=/backup/test bs=1M count=1024

Optimizations:

  1. Exclude large unnecessary files

    *.log
    *.tmp
    node_modules/
    .git/
  2. Use incremental backups

    • Only backup changed files
    • Much faster after first backup
  3. Parallel uploads

    • Split large backups
    • Upload multiple chunks simultaneously
  4. Local backup first, then sync

    • Backup to local disk
    • Sync to remote in background

"Server Slow During Backup"

Reduce impact:

  • Lower CPU priority
  • Limit bandwidth usage
  • Schedule during low-traffic hours
  • Use I/O throttling

In CtrlOps settings:

Throttle: Enable
CPU Limit: 50%
Bandwidth: 10 MB/s
Nice Level: 10 (lower priority)

Recovery Procedures

Restart Backup Service

# Restart CtrlOps backup daemon
sudo systemctl restart ctrlops-backup

# Or in CtrlOps UI
Settings > Backup > Restart Service

Reset Job

  1. Stop the job
  2. Clear job cache
  3. Reset last run time
  4. Re-enable job

Emergency Manual Backup

If automated backup won't work:

# Manual database backup
mysqldump -u root -p mydb > emergency_backup_$(date +%Y%m%d).sql

# Manual file backup
tar -czf emergency_backup_$(date +%Y%m%d).tar.gz /important/data

Getting Help

Information to provide:

  1. Backup job configuration (screenshot)
  2. Error message (exact text)
  3. Last successful backup date
  4. Server resources (CPU, RAM, disk)
  5. Destination type (S3, SFTP, local)
  6. Log output (Settings > Backup > View Logs)

Support:

Engineering Triage: Connect directly with our lead infrastructure engineers at daxesh@tsttechnology.in. We will perform a deep, human-to-human audit of your backup lifecycle to ensure your peace of mind.

On this page