[settings]
log_level = "info"
json_logs = false
max_concurrent_jobs = 10
shell = "/bin/sh"
watch_config = true
history_size = 1000
timezone = "UTC"
shutdown_grace_period = 30
[jobs.heartbeat]
schedule = "* * * * *"
command = "echo 'FlashCron is alive!'"
description = "Simple heartbeat job"
enabled = true
[jobs.daily_backup]
schedule = "0 2 * * *"
command = "/usr/local/bin/backup.sh --full"
description = "Full daily backup"
enabled = true
timeout = 7200
retry_count = 3
retry_delay = 300
working_dir = "/var/backups"
environment = { BACKUP_TYPE = "full", NOTIFY_EMAIL = "admin@example.com" }
[jobs.cleanup_temp]
schedule = "0 */6 * * *"
command = "find /tmp -type f -mtime +7 -delete"
description = "Remove temp files older than 7 days"
enabled = true
timeout = 300
[jobs.db_maintenance]
schedule = "0 3 * * 0"
command = "/opt/scripts/db-vacuum.sh"
description = "Weekly database maintenance"
enabled = true
timeout = 3600
tags = ["database", "maintenance"]
[jobs.ssl_check]
schedule = "0 12 * * *"
command = "certbot renew --quiet"
description = "Check and renew SSL certificates"
enabled = true
run_on_startup = true
[jobs.complex_script]
schedule = "30 4 * * *"
command = "source ~/.bashrc && run_analysis.sh"
description = "Complex analysis with bash features"
enabled = true
shell = "/bin/bash"
working_dir = "/opt/analysis"
[jobs.health_check]
schedule = "*/5 * * * *"
command = "curl -sf http://localhost:8080/health || exit 1"
description = "Application health check"
enabled = true
timeout = 30
capture_output = true
max_output_size = 4096
[jobs.daily_report]
schedule = "0 8 * * 1-5"
command = "/opt/scripts/generate-report.py --format pdf --send-email"
description = "Generate and send daily report"
enabled = true
timeout = 600
environment = { PYTHONPATH = "/opt/scripts", SMTP_HOST = "mail.example.com" }
tags = ["reporting", "email"]
[jobs.deprecated_task]
schedule = "0 0 * * *"
command = "echo 'This job is disabled'"
description = "Old task - kept for reference"
enabled = false
[jobs.metrics_collect]
schedule = "* * * * *"
command = "/opt/bin/collect-metrics"
description = "Collect system metrics every minute"
enabled = true
timeout = 55
capture_output = false
[jobs.deploy_staging]
schedule = "0 0 * * *"
command = "/opt/deploy/deploy.sh"
description = "Deploy to staging environment"
enabled = true
environment = { ENV = "staging", DRY_RUN = "false" }
working_dir = "/opt/deploy"
tags = ["deploy", "staging"]