This post describes steps to configure cron jobs in Ubuntu Linux to run every 5, 10, 15 minutes, Day, Day or week, Day or month, month, or year, etc.
A cron job is executed at specified intervals, typically on a Unix/Linux system. It is commonly used for operational and mundane tasks such as cleaning logs, backing up updated system files, etc.
Cron tasks or jobs can be scheduled to run at the minute, hour, Day, Day or week, month, Day of the month, or any combination.
Below is how to use cron to schedule tasks in Ubuntu Linux.
How to schedule cron tasks in Ubuntu Linux
As mentioned above, cron jobs in Linux are commonly used for operational and mundane functions such as cleaning up logs, backing up system files, and others.
Below is how one can use cron jobs to perform tasks at intervals.
Crontab (cron table) is a text file that contains the schedule of cron entries to be run at specified times. Each line in the user crontab file contains six fields separated by a space followed by the system command to run.
An example of a cron file will look similar to the one below:
* * * * * system command(s) to run | | | | | | | | | | schedules | | | | | ------- | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) (January - December) | | --------- Day of month (1 - 31) (1st day to 31st) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
The asterisk ( * )or star operator tells the cron to run or execute constantly. For example, the task will run every minute if an asterisk is in the Minute field.
Same for an hour, Day, Day of the week, month, Day of the month, and so forth.
An ( – ) hyphen operator allows you to specify a range of values. For example, you can specify days of the week as ( 1 – 5 ), representing (Monday to Friday) when defined in the Day of Week field.
A (, ) comma operator allows you to define a list of repeated values. For example, if you defined (1, 2, 3) in the Hour field, it represents (1 am, 2 am, 3 am). If no day is defined, the task will run daily at 1 am, 2 am, and 3 am.
It can also be represented as (1, 2, 5-8), representing (1 am, 2 am, and 5 am to 8 am).
The syntax of the system-wide crontab file contains an additional mandatory user field that specifies which user will run the cron job.
* * * * * <username> command(s) to run
There are still more to cron and scheduling jobs, but the above should get you started.
How to schedule a cron job to run every 5 minutes
If you want the cron job to run every 5 minutes, enter the line below in the crontab file.
0,5,10,15,20,25,30,35,40,45,50,55 * * * * ~/script.sh
How to schedule a cron job to run every 10 minutes
To run a job every 10 minutes, enter the line below in the crontab file:
*/10 * * * * ~/scripts.sh
How to run a cron job every 10 minutes
To schedule a cron job to run every 15 minutes, enter the line below in the crontab file:
*/15 * * * * ~/script.sh
How to run a cron job every minute
To run a cron job every minute, enter the line below in the crontab file.
* * * * * ~/script.sh
An example cron entry for Let’s Encrypt certbot to renew certificates automatically looks like the one below:
# the cronjob.timer function takes precedence over this cronjob. For # more details, see the systemd.timer manpage, or use systemctl show # certbot.timer. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
That should do it!
Conclusion:
- Cron jobs in Ubuntu Linux are useful for automating operational and mundane tasks.
- The key to scheduling tasks with cron jobs lies in understanding the syntax and utilizing the crontab file effectively.
- By leveraging the asterisk, hyphen, and comma operators, users can create precise schedules for their cron jobs.
- Examples of scheduling cron jobs at various intervals, along with a Let’s Encrypt certbot renewal cron entry, demonstrate the versatility of this feature.
- With this understanding, users can efficiently manage and automate tasks using cron jobs in Ubuntu Linux.
Leave a Reply Cancel reply