Where Cron Logs are Stored in the Server?

In Linux, Cron logs store the cron job information; each cron job refers to the specific task scheduled by the user. The cron logs created by each cron job are based on their type and provide hints if any problem occurs during the execution. They gather website information(visits) that helps to improve its performance.

This guide enlists all possible ways to display the cron logs’ location on the server.

Where Cron Logs are Stored on Your Server?

The cron logs are stored in the main “system log” file placed in the “/var/log/” directory by default. 

The “syslog” stands for “System Logging Protocol”.

Use the “cat” command with the combination of “grep” to filter out the cron logs from the “/var/log/syslog” file in this way:

$ tail /var/log/cron                             #For CentOS/RHEL
$ cat /var/log/syslog | grep cron                #For Debian/Ubuntu-Based

The output displays the current active cron jobs in the terminal.

How to Create Cron Logs File Manually?

The user can also create a separate cron logs file that can be easily monitored. The steps to perform this task are illustrated below:

Step 1: Open the Default Cron Log File

First, access the cron log configuration file “/etc/rsyslog.d/50-default.conf” in the default text editor named “nano”:

$ sudo nano /etc/rsyslog.d/50-default.conf

Find the “#cron.*” line in the above file and uncomment it by just removing the “#(hash)” in front of it:

Press “Ctrl+S” to save and “Ctrl+X” to exit the editor.

Step 2: Create New Cron Log File

Create a new “cron.log” file in the “/var/log/” static directory. This task can be easily performed using the command:

$ sudo nano /var/log/cron.log

Step 3: Restart the ryslog Service

In Last, restart the “ryslog” services using the “systemctl” command to save the changes effectively:

$ sudo systemctl restart rsyslog

The “ryslog” service has been restarted, and now all the cron logs are stored in the newly created “cron.log” file.

How to View Real-Time Cron Logs?

Apart from saving the cron logs, the user can easily view the real-time cron logs after specified time intervals using the “watch” command. 

Step 1: Create Watchcron File

Create and edit the “watchcron” file or according to the user’s choice using the command:

$ sudo nano watchcron

Write the “bash Shebang” at first to run it into a bash shell. After that, define the “watch” command with the following arguments:

Press Ctrl+S(save) and Ctrl+X (exit). The above “watch” command will refresh the cron logs after every 5 seconds and show on the terminal at 50 seconds.

Step 2: Modify Watchcron File Permissions

Assign the “x(execute)” permissions to the “watchcron” file to make it executable using the “chmod” command:

$ sudo chmod +x watchcron

Copy the “watchcron” file into the “/usr/sbin” location using the  “cp” command. The /sbin directory contains executable files necessary for the system administration:

$ sudo cp watchcron /usr/sbin

Step 3: Execute Watchcron File

Execute the “watchcron” file, and now the system’s real-time cron logs are displayed as shown in the image:

$ ./watchcron

No cron job is set that’s why the file contains no content.

Conclusion

In Linux, the cron logs are stored in the “/var/log/syslog” main system file that can be easily accessed through the “cat” and “grep” commands. The user can also create a separate file, “cron.log”, to store the cron logs. Moreover, the “watch” command allows the users to check the cron logs(real-time). This guide has illustrated the location of cron logs where they are stored on your server.