Your Webhosting Questions
Answered by the Webhosting Experts
Tags
...
...

How to Schedule System Updates and Tasks Using Cron Jobs

Updating a linux server is a good practice that can benefit your server’s security, functionality, and flexibility. This is important for several reasons:

  1. First, updating a linux server ensures that the server has the latest security patches and bug fixes, which can prevent potential attacks or errors from compromising the server’s performance or data.
  2. Second, updating a linux server can also improve the server’s functionality and compatibility with new software or hardware, which can enhance the server’s efficiency and usability.
  3. Third, updating a linux server can also provide access to new features or options that can make the server more customizable and adaptable to different needs or preferences.

But what’s the best way to ensure that your server remains up-to-date?

Cron jobs are tasks scheduled to run periodically on a computer system. They are often used for performing maintenance, backups, or other routine operations. Cron jobs are defined by a file called crontab, which specifies the commands to execute and the time intervals to do so. The crontab file can be edited using the crontab command or by using a text editor, and consists of six fields: minute, hour, day of month, month, day of week, and command.

A Cron job’s Structure

A cron job consists of two parts: a schedule and a command. The schedule defines when and how often the task should run, using a special format of minute, hour, day of month, month, day of week, and optional year. The command defines what action should be performed by the task, such as executing a script or sending an email. For example, a cronjob that runs every Monday at 10:00 am and prints “Hello World” to the standard output would look like this:

0 10 * * 1 echo “Hello World”

The structure of each section of the above line can be found in the table below.

* * * * * Command
Minute (0-59) Hour (0-23) Day of the month (1-31)

Month of the year (1-12)

Day of the week (0-6) Command to be executed

Viewing All Cron jobs

Using the command below, one can view all existing Cron jobs. The command display jobs for the current user you are logged in as, which in this example is root.

crontab -l

Screenshot showing the result of the crontab -l
 command.

To view other user Cron jobs, use the command crontab -u USERNAME -l while ensuring to change the “USERNAME” part with the actual username.

Editing and Adding Cron jobs 

To add and schedule a cron job, use the command crontab -e to open the editor and begin entering a task.

Depending on your editor, the file will open for editing as shown below.

Screenshot showing the crontab editor.

Now you can enter a new entry. For example, to have the system check for updates and update all available packages automatically every Wednesday at 2AM, then the following command would be used.

* 2 * * 3 sudo yum update -y > /dev/null 2>&1

screenshot showing the result of the command: * 2 * * 3 sudo yum update -y > /dev/null 2>&1
.

Redirecting the Scheduled Task’s Output to a File

You can enter and schedule most commands and tasks including sending the output to a file using > to overwrite a file each time or append to it using >> . For example,

* 2 * * 3 sudo yum update -y > /home/hivelocity/update_status.txt – this command will send the output to the file we listed while overwriting the file each time the task runs.

* 2 * * 3 sudo yum update -y >> /home/hivelocity/update_status.txt – this command will send the output to the file we listed while adding the output to the existing file each time the task runs, which will have a file with all the outputs from every instance that the file ran.

Redirecting the Scheduled Task’s Output to an Email Address

To have the output of all the commands being run in the crontab file sent to an email address, ensure that at the top of the file the following line is added.

MAILTO=”[email protected]

Note, make sure to change “[email protected]” to your email address within the double quotes, for example “[email protected]”.

Common cron job time structures

The listed items below can assist with the most common times used to run various tasks.

  • * * * * * – This runs the command every minute.
  • 0 * * * * – This runs the command every hour.
  • 0 0 * * * – This runs the command every day at midnight.
  • 0 0 * * 0 – This runs the command every Sunday at midnight.
  • 0 0 1 * * – This runs the command on the first day of every month at midnight.

As well as the following,

  • @reboot – Run once, at startup.
  • @yearly – Run once a year
  • @annually – (same as @yearly)
  • @monthly – Run once a month
  • @weekly – Run once a week
  • @daily – Run once a day
  • @midnight – (same as @daily)
  • @hourly – Run once an hour

Useful Resources

Creating a task can be complicated at first, so to make things easier, there are multiple sources online that will generate crontab lines based on your needs.

Two common generators are listed below.

 

– written by Pascal Suissa

Need More Personalized Help?

If you have any further issues, questions, or would like some assistance checking on this or anything else, please reach out to us from your my.hivelocity.net account and provide your server credentials within the encrypted field for the best possible security and support.

If you are unable to reach your my.hivelocity.net account or if you are on the go, please reach out from your valid my.hivelocity.net account email to us here at: [email protected]. We are also available to you through our phone and live chat system 24/7/365.

Tags +
...