10+ crontab command examples in Linux [Cheat Sheet]


CheatSheet

Reviewer: Deepak Prasad

Introduction to crontab command

crontab command in Linux is used to maintain the crontab file or cron table. The cron table contains the list of commands to run at a regular schedule on the system. Each user can have their own crontab. The daemon that reads the crontab and executes the commands at the right time is called cron. It is named after the Greek god of time, Kronos. The cron job is helpful for system administrators to execute the important tasks in the background automatically.

 

Configuration files for crontab

Cron jobs can be allowed or disallowed for individual users.

/etc/cron.allow: Users must be listed in this file to be allowed to run cron jobs.

/etc/cron.deny: If the file cron.allow does not exist, users must not be listed in this file to be allowed to run cron jobs.

If none of these files exist in the system, only the superuser is allowed to run cron jobs.

 

Linux crontab format

Crontab files are located in the directory /var/spool/cron/crontabs. You can only edit crontab files by using the crontab command. Each cron job in the crontab files has five times followed by the command. The time field uses a 24-hour format.

MIN HOUR DOM MON DOW COMMAND

 

Crontab fields and allowed values

These are the allowed values in the crontab file to schedule a job.

Field    Description    Allowed Value
MIN      Minute field    0-59
HOUR     Hour field      0-23
DOM      Day of Month    1-31
MON      Month field     1-12
DOW      Day Of Week     0-6
CMD      Command         Any command to be executed.

You can set an asterisk value (*) which means "first through last". For example, to run a job every week, you can use * in the 'Day of Week' field. The values like ranges (9-5) and lists (1,3,5,8) are allowed. For the 'month' and 'day of week' fields, you can also use the first three letters of the month or day. For example, sun, mon, jan, feb, etc.

In this article, we will demonstrate the different examples of cron jobs and crontab commands to maintain the crontab files in Linux.

 

Different examples of crontab commands in Linux

1. List the cron jobs of the current user

You can view the crontab of the current logged in user by using -l option.

$ crontab -l

Sample Output:

golinux@ubuntu-PC:~$ crontab -l
0 20 * * * backup.sh

If there are no crontabs, you will see output like this.

golinux@ubuntu-PC:~$ crontab -l
no crontab for golinux

 

2. crontab command to edit the user's cron jobs

The -e option allows you to edit the crontab for the current user.

$ crontab -e

Sample Output:

You need to add the cron jobs in this crontab file.

crontab command to edit the user's crontab

3. Add a cron job for a specific time

The cron job allows you to schedule the execution of the command at a specific time.

For example, the following cron job runs cp -R /home/golinux/data /home/golinux/data_backup at 7:45 AM on January 14.

45 07 14 01 * cp -R /home/golinux/data /home/golinux/data_backup

Sample Output:

You need to add the cron command as shown below. The comments are ignored, so you can also delete them.

cron job in crontab file

 

4. Schedule a cron job for every day at 8 PM

You can schedule a cron job for every day at 8 PM using the following command. It runs the myscript.sh script every day at 8 PM.

0 20 * * * myscript.sh

 

5. Schedule a cron job twice a day

If you need to schedule a cron job twice a day, you can specify two times. For example, the command below runs the script every day at 7 AM and 9 PM.

0 7,21 * * * myscript.sh

 

6. Schedule multiple jobs using a single cron

You can also run multiple jobs using a single cron. The following command runs myscript.sh and myscript2.sh at 6 AM every day.

0 6 * * * myscript.sh; myscript2.sh

7. Schedule a cron job on a yearly basis

This command schedules a job on a yearly basis. The @yearly timestamp is equal to 0 0 1 1 *.

@yearly myscript.sh

Or, you can use @annually which is the same as @yearly.

 

8. Schedule a cron job on a monthly basis

@monthly command allows you to schedule a job on a monthly basis. It executes the task in the first minute of every month. Its timestamp is equal to 0 0 1 * *.

@monthly myscript.sh

Similarly, you can schedule a job on a weekly, daily, and hourly basis.

@weekly: Run once a week (0 0 * * 0)
@daily: Run once a day (0 0 * * *)
@hourly: Run once an hour (0 * * * *)

 

9. Schedule cron job on system reboot

You can schedule a job on system reboot using @reboot command. It allows you to run the tasks automatically on every system startup.

@reboot myscript.sh

 

10. crontab command to list other user's crontab

The -u option allows you to specify the name of a user. You can combine this option with -l option to list another user's crontab. You will need root privilege to view the crontab files of other users.

$ sudo crontab -u deepak -l

Sample Output:

golinux@ubuntu-PC:~$ sudo crontab -u deepak -l
no crontab for deepak

 

11. crontab command to edit other user's crontab

Similarly, you can combine -u option followed by user name with -e option to edit the specified user's crontab.

$ sudo crontab -u deepak -e

 

12. crontab command to remove the user's crontab

The -r option removes the crontab file of the currently logged-in user.

$ crontab -r

To remove other user's crontab, you can use -r option with -u like this.

$ sudo crontab -u user -r

 

13. crontab command to prompt before removing the crontab

The -i option can be used with -r option to prompt the user for y/n response before removing the crontab.

$ crontab -i -r

Sample Output:

golinux@ubuntu-PC:~$ crontab -i -r
crontab: really delete golinux's crontab? (y/n) n

 

Summary

The crontab command helps to view or edit the table of commands to be executed by cron. We hope you will be now able to schedule jobs in the Linux system by using the cron command. If you still have any confusion, please let us know in the comment section.

 

What's Next

Create cron job or schedule jobs using bash scripts in Linux or Unix
Detailed tutorial on Kubernetes cron job scheduler

 

Further Reading

man page for crontab command

 

Rohan Timalsina

Rohan Timalsina

He is proficient in a wide range of skills, including Page Builder Plugins such as Elementor, Beaver Builder, Visual Composer, and Divi Builder. His expertise extends to Front End Development with HTML5/CSS3, JavaScript, Bootstrap, and React.js. You can connect with him on his LinkedIn profile.

Can't find what you're searching for? Let us assist you.

Enter your query below, and we'll provide instant results tailored to your needs.

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can send mail to admin@golinuxcloud.com

Thank You for your support!!

Leave a Comment