Назад | Перейти на главную страницу

Logrotate postrotate: переменная имени файла журнала пуста

Согласно руководству по logrotate (https://manpages.debian.org/jessie/logrotate/logrotate.8.en.html), logrotate должен вызвать скрипт и передать имя повернутого файла в качестве первого параметра скрипта с такой конфигурацией:

/var/log/piwik/*.log {
    missingok
    postrotate
            /root/createStats.sh > /dev/null
    endscript
}

Скрипт createStats.sh существует только для тестовых целей:

#!/bin/bash
echo "L: $1"
FNAME=/my.log
D=$(date)
echo "M $D ; $0 ; $1 ; $2" >> $FNAME

К сожалению, мой файл /my.log не содержит значений для $ 1 (или $ 2):

M Tue 26 Dec 05:16:38 CET 2017 ; /root/createStats.sh ;  ;
M Tue 26 Dec 05:16:38 CET 2017 ; /root/createStats.sh ;  ;

Возможно, я что-то упускаю. Есть у кого-нибудь идеи?

Моя версия logrotate - 3.8.7.

Думайте о postrotate как о сценарии. Вы должны передать в него 1 доллар. Пытаться

/var/log/piwik/*.log {
    missingok
    postrotate
            /root/createStats.sh $1 > /dev/null
    endscript
}