How to Create Jobs in Linux: A Practical Guide to Automating Tasks with Cron
Learn how to create jobs in Linux using cron and crontab. A practical, step-by-step guide with real examples to automate tasks and scripts.

Automating tasks in Linux not only improves operational efficiency, it also saves time and reduces human error. One of the most widely used mechanisms for this purpose is cron jobs. In this guide, you’ll learn step by step how to create jobs in Linux using cron and crontab, from basic concepts to practical examples you can apply immediately.
What Is a Job in Linux?
A job in Linux is any task that runs automatically without manual intervention. It is usually scheduled using cron, the standard task scheduler in Unix/Linux systems.
Cron jobs are commonly used to:
- Run automatic backups
- Synchronize files or directories
- Restart services
- Clean up logs or temporary files
Main Tools: cron and crontab
What Is cron?
cron is a daemon that runs in the background and is responsible for executing scheduled tasks when their configured time conditions are met.
What Is crontab?
crontab (cron table) is the file where jobs are defined. Each line represents a scheduled task with a specific execution frequency.
Cron Job Structure
A typical crontab entry looks like this:
* * * * * /path/to/command.shThe five fields represent:
┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of month (1 - 31)
│ │ │ ┌───────────── month (1 - 12)
│ │ │ │ ┌───────────── day of week (0 - 6) (Sunday = 0)
│ │ │ │ │
* * * * * command to executeHow to Create a Cron Job Step by Step
1. Open the crontab file
crontab -eThis opens the default editor where you can add or modify scheduled tasks.
2. Write your scheduled task
Example: run a script every day at 2:30 AM
30 2 * * * /home/user/scripts/backup.sh3. Check active cron jobs
crontab -lCommon Cron Job Examples
Run a script every hour:
0 * * * * /home/user/scripts/sync.shDelete temporary files weekly (Sunday at 3 AM):
0 3 * * 0 rm -rf /tmp/*Run a script every 10 minutes:
*/10 * * * * /home/user/scripts/check.shImportant Considerations
- Always use absolute paths in your commands.
- Make sure the script has execution permissions:
chmod +x script.sh- Redirect output to a log file to simplify debugging:
*/5 * * * * /home/user/my_script.sh >> /var/log/myscripts.log 2>&1Check the Cron Service Status
Verify that cron is running:
sudo systemctl status cronIf it’s not active, you can start it with:
sudo systemctl start cronAdvanced Tips
- You can define environment variables inside your crontab.
- Use anacron for tasks that must run even if the system was powered off at the scheduled time.
- For tasks that depend on external conditions, write more robust scripts with proper error handling and logging.
Additional Resources
- Official documentation:
man 5 crontab - https://crontab.guru – a visual tool to understand cron expressions
Conclusion (this is for SEO, you can ignore it)
Creating jobs in Linux is a key skill for system administrators and developers. Mastering cron and crontab allows you to automate tasks in a reliable, simple, and scalable way.
You now have the foundation you need to start creating your own cron jobs and optimize your Linux workflow.