TFT

CRON Expressions for Database Backups

Automate your database backups with the right CRON expression. Generate schedules for nightly, weekly, or custom backup jobs. Ensure your data is backed up without manual intervention.

CRON for Database Backups
Templates and schedules for automated database backup operations
Select Database Type
Choose your database to see relevant backup commands
Nightly Full Backup
Complete database backup every night
0 2 * * *

Daily at 2:00 AM

Standard nightly backups during low-traffic hours

Weekly Full Backup
Complete backup every Sunday
0 1 * * 0

Every Sunday at 1:00 AM

Weekly full backup with daily incrementals

Daily Incremental
Incremental backup every day
0 3 * * *

Daily at 3:00 AM

Daily incremental backups for faster recovery

Hourly Transaction Log
Transaction log backup every hour
0 * * * *

Every hour

Point-in-time recovery capability

Twice Daily Backup
Backup at 2 AM and 2 PM
0 2,14 * * *

2:00 AM and 2:00 PM daily

High-availability requirements

Weekday Backups Only
Backup on weekdays only
0 2 * * 1-5

Weekdays at 2:00 AM

Skip weekend backups for non-critical systems

Monthly Archive
Monthly archive backup
0 1 1 * *

1st of every month at 1:00 AM

Long-term archival and compliance

Quarterly Full Backup
Full backup each quarter
0 0 1 1,4,7,10 *

First day of each quarter at midnight

Quarterly compliance and audit requirements

Database Backup Best Practices

Recommended Practices

  • Schedule during off-peak hours (1-5 AM)
  • Use incremental backups for large databases
  • Store backups in multiple locations
  • Test restore procedures regularly
  • Encrypt sensitive backup data

Important Considerations

  • Monitor backup success/failure
  • Set up alerts for failed backups
  • Document recovery procedures
  • Comply with data retention policies
  • Consider replication for HA systems

How Database Backup Scheduling Works

Database backups scheduled via CRON use native database tools (mysqldump, pg_dump, mongodump) to export data at specified intervals. The CRON job triggers the backup command, which writes to a file that can be stored locally or transferred to remote storage.

Full backups capture the entire database, while incremental backups only save changes since the last backup. Transaction log backups enable point-in-time recovery for databases that support it.

The backup workflow:

  1. CRON triggers the backup script at the scheduled time
  2. Database export tool creates a dump of the data
  3. Output is compressed (gzip) to save storage space
  4. Backup file is timestamped for identification
  5. Old backups beyond retention period are deleted
  6. Optional: backup is copied to remote storage (S3, etc.)

Scheduling happens during off-peak hours (typically 1-5 AM) to minimize performance impact. The exact timing depends on your traffic patterns and backup size—larger databases need more time and may affect query performance during the backup window.

When You'd Actually Use This

Protecting e-commerce transaction data

An online store processes hundreds of orders daily. Nightly full backups at 2 AM ensure they can restore to yesterday's state if disaster strikes. Hourly transaction log backups enable point-in-time recovery for recent orders.

Meeting compliance backup requirements

A healthcare application must maintain 7 years of patient records with documented backup procedures. Monthly archive backups with quarterly compliance checks satisfy audit requirements while daily backups protect current operations.

Preparing for database migrations

Before migrating to a new database version, a team schedules a full backup immediately before the migration window. If the migration fails, they can restore from the backup and reschedule with a fixed approach.

Supporting development and testing environments

A development team needs recent production data (anonymized) for testing. Daily backups are automatically restored to a staging environment, giving developers realistic data without manual export/import processes.

Protecting against ransomware attacks

After seeing competitors hit by ransomware, a company implements daily backups with 30-day retention stored off-site. If their database is encrypted by attackers, they can restore from backups without paying the ransom.

Managing multi-region database replication

A global application uses database backups to seed new regional replicas. Weekly full backups are transferred to new regions, then incremental backups keep them current until they're promoted to read-write replicas.

What to Know About Database Backups

Backups impact database performance.Export operations consume I/O and CPU. Large databases can take hours to backup. Schedule during low-traffic periods and consider using read replicas for backup operations to avoid impacting production queries.

Test restore procedures regularly.A backup you can't restore is worthless. Monthly restore tests verify your backups are valid and your team knows the restore process. Document restore time—knowing you need 4 hours to restore affects your RTO planning.

Encryption matters for sensitive data.Backup files contain your entire database. If they're stored off-site or in cloud storage, encrypt them. A stolen backup is as bad as a stolen database.

Retention policies balance recovery and storage.Keep daily backups for 7-30 days, weekly for 1-3 months, monthly for a year or more. Longer retention means more storage cost but better recovery options for issues discovered late.

3-2-1 backup rule: Keep 3 copies of your data, on 2 different media types, with 1 copy off-site. Your production database is one copy. Local backups are the second. Cloud storage or physical media off-site is the third.

Common Questions

What's the best time to schedule database backups?

During your lowest traffic period, typically 2-4 AM local time. Avoid overlapping with other maintenance tasks (updates, reports, batch jobs). For global applications, pick the time that affects the smallest percentage of users.

How often should I backup my database?

Daily full backups are standard for most applications. High-transaction systems may need hourly incremental backups plus daily full backups. Consider your tolerance for data loss—if you can't lose more than an hour of data, hourly increments are necessary.

Should I backup to the same server?

No. If the server fails, you lose both the database and the backups. Store backups on separate storage (different disk, different server, or cloud storage). For critical systems, maintain off-site copies in a different geographic location.

What's the difference between full and incremental backups?

Full backups copy the entire database. Incremental backups only copy data changed since the last backup. Full backups are simpler to restore but take longer and use more storage. Incremental backups are faster but require the full backup plus all incrementals to restore.

How do I handle backup failures?

Configure your backup script to send alerts on failure (email, Slack, PagerDuty). Include exit codes that CRON can capture. Have a runbook for manual backup procedures if automated backups fail. Never let multiple days pass without verifying backup success.

Do I need to stop the database during backup?

Generally no. MySQL's mysqldump with --single-transaction, PostgreSQL's pg_dump, and MongoDB's mongodump all support hot backups while the database is running. For consistent backups of active databases, use these tools rather than copying data files directly.

How long should I keep database backups?

Depends on your needs. Common patterns: 7-30 daily backups, 4-12 weekly backups, 12-36 monthly backups. Compliance requirements may mandate specific retention periods. Balance recovery flexibility against storage costs.