Whenever a Crontab job is executed, an email regarding the execution of that job is sent to the email address of the root user i.e. the email ID that you have provided while configuring your Cron daemon. These are the default settings of the Crontab service. However, in some situations, the users prefer to send these notifications to a location other than the root user’s email ID.
You can consider a scenario in which a team lead has asked a subordinate to perform a job after every 4 hours. Whenever that subordinate performs that task, the team lead is supposed to report to the CEO about it, however, this will only be possible if the subordinate informs the team lead after every 4 hours that he has performed the assigned job. It means that if the subordinate forgets to do so, then the team lead will have to face the consequences.
This task can be simplified if somehow the team lead automatically gets to know every time the subordinate performs that task without needing the subordinate to explicitly inform the team lead. Fortunately, the Crontab service in Linux allows us to do so by configuring its MAILTO parameter in such a way that it can send notifications to the desired recipient. So, today we will be talking about the method of configuring the Crontab MAILTO parameter to send notifications to a specified location other than the root user’s email ID in Linux Mint 20.
Method of Configuring Crontab MAILTO Parameter to Send Notification to a Specified Location:
For configuring the Crontab MAILTO parameter to send notifications to a specified location in Linux Mint 20, you are required to perform the following steps:
Step # 1: Run the Crontab Service:
First, you need to start the Crontab service so that it can perform the specified jobs by running the command stated below in your terminal:
$ sudo systemctl start cron
This command will immediately start the Cron daemon in the background.
Step # 2: Verify the Working Status of the Crontab Service:
To confirm the working status of the Crontab daemon, you can run the following command in your terminal:
$ sudo systemctl status cron
If the Crontab daemon is working, then you will see the “active (running)” status in the output of this command as highlighted in the image shown below:
Step # 3: Open the Crontab File with the Nano editor:
Now we will attempt to open the Crontab file to configure the MAILTO parameter by running the following command in the terminal:
By executing the crontab command, the crontab file will open with your default text editor i.e. the nano editor.
Step # 4: Configure the MAILTO Parameter to Send Notification to a Specified Location:
Now you can add any task to this file to be executed as a Crontab job. In our situation, we’ve built a Crontab job to execute a bash file every second. However, before that job, you need to enter the line shown below for configuring the MAILTO parameter for sending notifications to a specified location:
Here, you need to replace the EmailAddress with the actual email ID of the person to whom you want to send the Crontab notifications. We wanted to send the Crontab notification to “[email protected]” as highlighted in the following image.
At times, you have more than one job added to the Crontab file and you might want to send the notifications of each job to a different email address. In that case, you need to add the MAILTO line shown above before every job that you state in your Crontab file and just write the respective email address to where you want to send the notifications. In this way, you can easily configure the Crontab MAILTO parameter to send notifications to a specified location.
Step # 5: Install New Crontab:
Now you can close your Crontab file after saving it. As soon as you will do that, you will notice that the Cron daemon is installing the new Crontab since you have just modified the Crontab file by configuring the MAILTO parameter.
Step # 6: Check whether the Crontab Job is Executing or Not:
Moreover, if you also need to confirm that the job you have just added to your Crontab file is executing successfully or not, then you can even do that by running the following command in your terminal:
$ sudo grep –a “Cron.sh” /var/log/syslog
Here, Cron.sh is the name of the bash file that we wanted to execute every second whereas /var/log/syslog file in Linux contains a log of all the Crontab jobs that have been executed till the time you ran the above-mentioned command.
When you will execute this command, you will notice in its output that the Cron.sh file is actually executing every second as shown in the image below. It also means that whenever this bash file will be executed, an email will be sent to the email address that has been stated with the MAILTO parameter in the Crontab file.
By following all the steps explained in this article, one can easily configure the Crontab MAILTO parameter in such a way that it gets capable of sending notifications via email to any desired recipient. The MAILTO parameter can be configured for as many recipients as you want. In other words, if you have multiple Crontab jobs listed within the Crontab file, then you can easily have separate MAILTO parameters for each of these jobs so that you can send the notifications about the execution of any particular job to the intended recipient. In this way, you can also save yourselves from the hassle of manually informing the concerned person about the completion of a task.