/etc/cron.monthly Directory: Explanation & Insights

Contains tasks run every month

The /etc/cron.monthly directory is an important part of the cron job scheduling system in Linux. It is a system utility that allows tasks to be automatically run in the background at regular intervals by the cron daemon. These tasks are often system-related, such as creating backups, updating the system, or cleaning temporary files.

What it Contains

The /etc/cron.monthly directory contains scripts that are scheduled to run once a month. Each script in this directory is executed by the cron daemon at a specific time set by the system administrator. The execution time is usually set to a time when the system load is low, such as during the night or over the weekend.

For example, you might see a script like this in the directory:

apt-get update && apt-get upgrade -y

This script updates the package lists and upgrades all installed packages.

Its Importance

The /etc/cron.monthly directory is crucial for maintaining the health and performance of a Linux system. Monthly maintenance tasks, such as updating system software, performing system audits, or generating reports, can be automated using scripts in this directory. By automating these tasks, system administrators can ensure that these important tasks are not forgotten and are performed consistently.

Relation to Other Directories

The /etc/cron.monthly directory is part of a set of directories used for scheduling tasks on a Linux system. These include:

Each of these directories contains scripts that are run at different intervals, allowing fine control over when different types of tasks are run.

Potential Problems and Pitfalls

One common problem with the /etc/cron.monthly directory is that scripts may fail to run if they are not properly formatted or if they contain errors. If a script fails, it might not be immediately obvious, leading to a system failure or other problems.

Another potential issue is that running heavy tasks simultaneously might lead to a high system load, leading to decreased system performance. To prevent this, you can stagger heavy tasks to run at different times.


To add a script to the /etc/cron.monthly directory, you can use the following commands:

sudo touch /etc/cron.monthly/myscript
sudo chmod +x /etc/cron.monthly/myscript

This creates a new script named myscript and makes it executable.

Then, you can edit the script using a text editor:

sudo nano /etc/cron.monthly/myscript

And paste your script into the file, for example:

apt-get update && apt-get upgrade -y

After saving and closing the file, the script will be run by cron at the next scheduled monthly interval.

Typical Output

When the scripts in the /etc/cron.monthly directory are run, they typically do not produce any output unless there are errors. However, you can make your scripts output to a log file by redirecting their output. For example:

apt-get update && apt-get upgrade -y >> /var/log/mylog.log

This will append the output of the script to the file /var/log/mylog.log. You can then view this log file to check if the script has run successfully. If there were any errors, they would be logged in this file.

Except where otherwise noted, content on this site is licensed under a CC BY-SA 4.0 license CC BY SA