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

сценарий postrotate не получает повернутого имени файла

Я пытаюсь выполнить некоторую обработку журнала exim, но мой скрипт не получает в качестве параметра повернутое имя файла журнала - скорее, он получает исходное имя файла журнала (которое больше не существует)

/var/log/exim/*log" {
  daily
  rotate 3650
  delaycompress
  missingok
  notifempty
  nosharedscripts
  postrotate
   echo $0 $1 $2 >> /tmp/out
   /path/to/script $1
  endscript
}

Результаты в / tmp / out:

  logrotate_script /var/log/exim/main.log

я бегу

logrotate --force -v /etc/logrotate.conf

Кажется, что вывод указывает, что он переименовал, а затем запустил:

renaming /var/log/exim/main.log to /var/log/exim/main.log-20160105
running postrotate script

Это на экземпляре amazon linux. Я пробовал использовать как sharedscripts, так и nosharedscripts, без разницы.

Как мне получить старое переименованное имя файла?

Если файл журнала результатов имеет формат (logfilepath). (Log) - (20160105), возможно, вы можете попробовать следующее:

postrotate
DATE=`date '+%Y%m%d'`
/path/to/script $1-$DATE
endscript

Если вам нужен формат (logfilepath) - (20160105). (Log), вы можете использовать:

postrotate
DATE=`date '+%Y%m%d'`
LOGF=${1%*.}
/path/to/script $LOGF-$DATE.log
endscript

с $ 1 return logfilepath