How to Use Cron to Automate Tasks on a Linux VPS (with Pictures)
Edit Article

  • 1 Editor

CRON, now what is this command used for in Linux? I know you may be fed up of the different configurations and command used in Linux. You may be by now thinking of switching over to Windows rather using Linux, but trust me it is really easy. CRON is nothing but the easiest way to schedule job and run tasks in the background on Linux Machines. Wow isn’t it useful, doesn't it feel like scheduling job or batch files on Windows.

Here i have explained how you can use Cron to automate tasks on a Linux VPS ?, After reading this blog you will definitely feel how easy it was.

You will be able to configure CRON with simple steps

To use CRON, You have to execute the below steps on your VPS

CRON by default is coming with VPS or dedicated server to which you are hosted but if it is not then you need to install the same. Steps to setup cron schedule are as follow:

How To Automate Server Scripts With Cron :

Step – 1: Installation:

Different commands are to be executed depending up on the Server you are using

For Ubuntu / Debian:

sudo apt-get update
sudo apt-get install cron

For CENT OS / Red Hat Linux:

sudo yum update
sudo yum install vixie-cron crontabs

Also we will need to make sure that crons are to be run in background so execute below command too

sudo /sbin/chkconfig crond on
sudo /sbin/service crond start

Step – 2: Syntax of CRON


5 * * * * curl

In order to run command every minute use below syntax:

* * * * *

For every 12th Minute on the hour:

12 * * * *

In order to run command every 15 minutes

0,15,30,45 ****

In order to run command every Monday at 5:00 AM

0 5 * * 1

Every command in above syntax are divided down into

  • Schedule
  • Command

Schedule Component is divided into

  • Minute
  • Hour
  • Day of the month
  • Month
  • Day of the week For example:If you want to run a shell script called at 22:00 every day, then you can execute below mentioned script for the same:0 22 * * * /home/file/scripts/
    === Step – 3: Configuring Cron Jobs : === Once you know the job you want to schedule, run it at a particular time. The next step is to select the location or place where you can put it so that our background program is able to read it. There are various location but the recommended location is the user’s crontab. The files for each user are located at /var/spool/cron/crontab but we cannot edit it directly. But yet, in order to edit such files we will need to use crontab command as below
    crontab –e 
    vi must be used to edit any file. It will edit any file in the similar way by opening the editor. Here you can input your own schedule for an each job on a new line. Once you have edited, suppose if you want to view your crontab then use
    crontab –l 
    To erase your crontab use
    crontab –r 
    Now suppose you want to edit crontab from their user location, you can do it easily. For this you have to become a privileged user. If you have permissions to do it, then you can easily edit by using
    crontab  -u  -e (replace  with actual user name) 
    Hope everyone is getting a clear picture of what i am trying to explain... Now here i will show you how a crontab file will look like:
    ==== Predefined scheduling options ==== {| border="1" |- |Entry |Description |Equivalent to |- |@yearly (or @annually) |Run once a year at midnight of January 1 |0 0 1 1 * |- |@monthly |Run once a month at midnight of the first day of the month |0 0 1 * * |- |@weekly |Run once a week at midnight on Sunday morning |0 0 * * 0 |- |@daily |Run once a day at midnight |0 0 * * * |- |@hourly |Run once an hour at the beginning of the hour |0 * * * * |- |@reboot |Run at startup |@reboot |}

Once you are done with the installation some of the points we will be covering include:

  • Examples on how to set the CRON and its various abbreviations used.
  • Editing the CRONTAB configuration file
  • Then we will see the output for the CRON as below.

Output for CRON:

When you schedule the CRON job, email intimation is sent to the user, if it is not directed to log file or into /dev/null. If you want to get such email intimations, you need to specify the MAIL TO setting. It is located in the top of the crontab. Hence to edit crontab configuration file the following command is used:

crontab –e

and then edit it as below




#For comment

* * * * * echo “Run this command every minute” >> file.log

>> symbol is use to append to any file

Once we are well acquainted with output we will now see how to restrict the access to CRON

It is really easy task to restrict the access to CRON using the /etc/cron.allow and etc/cron.deny files. You can also deny or allow a user by placing their username in those files. It can be done as per your need to give or revoke access for that user. Unless you modify the files using the following commands

echo ALL >>/etc/cron.deny
echo <username> >>/etc/cron.allow

All the crons by default running in the background will assume that the users have permissions to modify the files.

All - use to lock out for all users and then we provided username in <username> bracket to assign the privileges on CRON.

Now you must be thinking that what if I want to run my CRON job schedule on machine startup. Then here, i have the solution you can run your CRON job by just editing your CRONTAB with following command

@reboot echo “System start up”

Now as we have reached the end of the discussion, let me just brief you with all we have seen now:

We have seen the 3 basic steps i.e.

  • installation,
  • taking care of syntax and
  • proper configuration If you do this properly, you can easily configure your CRON without any last minute hiccups. I hope everyone is happy with my session. Keep updating yourself; we have more things in store.

If you do this properly, you can easily configure your CRON without any last minute hiccups. I hope everyone is happy with my session. Keep updating yourself; we have more things in store.

Article Tools

Did this article help you?


an Author!

Write an Article