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:
- Go to Backup tab
- Check if job toggle is ON (green)
- 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/directorySource 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 -hSolutions:
-
Increase retention cleanup
- Reduce number of backups kept
- Shorten retention period
-
Enable compression
- Higher compression ratio
- May increase backup time
-
Add storage
- Expand existing volume
- Add new backup destination
-
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.sqlOr 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 statusVerify 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:
-
Wrong credentials
- Check database username/password
- Verify user has backup privileges
-
Database offline
- Check service status:
systemctl status mysql
- Check service status:
-
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-runNotification 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=1024Optimizations:
-
Exclude large unnecessary files
*.log *.tmp node_modules/ .git/ -
Use incremental backups
- Only backup changed files
- Much faster after first backup
-
Parallel uploads
- Split large backups
- Upload multiple chunks simultaneously
-
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 ServiceReset Job
- Stop the job
- Clear job cache
- Reset last run time
- 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/dataGetting Help
Information to provide:
- Backup job configuration (screenshot)
- Error message (exact text)
- Last successful backup date
- Server resources (CPU, RAM, disk)
- Destination type (S3, SFTP, local)
- Log output (Settings > Backup > View Logs)
Support:
- Email: daxesh@tsttechnology.in
- Live chat: In-app help button
- Community: Discord
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.