Are variables supported in logrotate configuration files?

logrotate

Solution

You can achieve what you are looking for by implementing this kludge:

my-logrotate.conf ( NOTE: double quotes `"` are mandatory, also note that file names don't have to appear on the same line )

"*.log"
"some_sub_dir/*.log"
{
    missingok
    # and so on
    # ...
}

Then the actual logrotate script - my-logrotate.sh

#!/bin/sh

set -eu

cd "${my_app_log_dir}"
exec logrotate /path/to/my-logrotate.conf

Now you can add logrotate.sh to your crontab.

Problem

I looked at logrotate.conf examples and everything in my /etc/logrotate.d directory. Nowhere was I able to find documentation on variables in these files. I am trying to create a config file for rotating the logs of an application we are writing. I want to set the directory where logs are stored once, and then use it as a variable, like so: ``` my_app_log_dir=/where/it/is/deployed/logs ${my_app_log_dir}/*.log ${my_app_log_dir}/some_sub_dir/*.log { missingok # and so on # ... } ``` Is that possible?

Original source