Skip to content

Systems Administration

Cron is a job scheduler that runs commands automatically at specified times on Unix-like systems.

* * * * * command
│ │ │ │ │
│ │ │ │ └─── Day of week (0-7, Sunday = 0 or 7)
│ │ │ └───── Month (1-12)
│ │ └─────── Day of month (1-31)
│ └───────── Hour (0-23)
└─────────── Minute (0-59)
Terminal window
* * * * * echo "Hello" >> /tmp/hello.log
Terminal window
30 * * * * /path/to/script.sh
Terminal window
30 2 * * * /usr/bin/backup.sh
Terminal window
0 9 * * 1 /home/user/weekly-report.py
Terminal window
*/5 * * * * /usr/local/bin/check-status.sh
Terminal window
crontab -e
Terminal window
crontab -l
Terminal window
crontab -r
  • Use full paths for commands and files
  • Test your scripts manually first
  • Check logs: grep CRON /var/log/syslog
  • For output, redirect to a file: command >> /tmp/output.log 2>&1
  • Remember cron runs with minimal environment variables
TimeCron Expression
Every minute* * * * *
Hourly0 * * * *
Daily at midnight0 0 * * *
Weekly (Sunday)0 0 * * 0
Monthly0 0 1 * *
Yearly0 0 1 1 *
Terminal window
# Edit crontab
crontab -e
# Add this line for weekly backup at 6 AM on Monday
0 6 * * 1 /home/<USERNAME>/.local/bin/dropbox_uploader.sh upload /zata/zippy/<USERNAME> zata_backup

See dropbox-uploader.sh section for more details about this backup tool.