/etc/cron.daily Directory Explained

Contains tasks run every day

The /etc/cron.daily directory is a special place in the Linux filesystem where you can store scripts that you want to run on a daily basis. These scripts are typically shell scripts, but they can be written in any language that can be executed by the shell.

cd /etc/cron.daily

Running the above commands in your terminal should list the scripts currently scheduled to run daily. The output might look something like this:


Each of these files is a script that the system will run once every day.

What It Is Used For

The main purpose of the /etc/cron.daily directory is to automate maintenance tasks that need to be performed on a regular basis, but not so often that they would need to be run every hour or every minute. Examples could include rotating log files with logrotate, updating the man-page database with man-db, or updating the password aging information with passwd.

Why It Is Important

Automating daily tasks is crucial to keeping a Linux server running smoothly and efficiently. By placing scripts in the /etc/cron.daily directory, system administrators can ensure that these tasks are performed consistently, even if they forget about them or are away from the server.

Relation to Other Directories/Commands/Files

The /etc/cron.daily directory is part of the larger cron system, which includes the /etc/crontab file as well as the /etc/cron.hourly, /etc/cron.weekly, and /etc/cron.monthly directories. These directories serve the same purpose as /etc/cron.daily, but for different time scales.

The execution of the scripts in the /etc/cron.daily directory is controlled by the cron daemon, which is started at boot time by the /etc/init.d/cron script.

Potential Problems and Pitfalls

One common problem that you might encounter with the /etc/cron.daily directory is that a script might not run when you expect it to. This could be due to a number of reasons, such as incorrect file permissions, errors in the script itself, or a misconfigured crontab file.

For example, the scripts in /etc/cron.daily need to be executable. You can make a script executable by using the chmod command:

chmod +x /etc/cron.daily/myscript

If a script is not running correctly, you can check the cron logs for any error messages:

grep CRON /var/log/syslog


The /etc/cron.daily directory is a powerful tool for automating daily tasks on a Linux server. By understanding what it is, how it works, and what potential problems to look out for, you can use it to keep your server running smoothly and efficiently.

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