Как вставить дату внутри имени файла с помощью logrotate - PullRequest
29 голосов
/ 04 марта 2012

Мне нужно настроить logrotate для поворота файлов журналов из приложения, работающего на сервере.Мне нужна дата внутри имени файла.

Я установил dateext, а также формат даты, чтобы добавить - в дату.Имя файла результата: what.csv_2012-03-03

Я бы хотел, чтобы отметка времени была частью имени файла, сохраняя расширение;Whatever_2012-03-03.csv.

Ответы [ 2 ]

61 голосов
/ 02 августа 2012

Вы должны иметь возможность держать расширение отдельно, например, whatever.2012-03-03.csv, со следующей конфигурацией:

whatever.csv {
  dateext
  dateformat .%Y-%m-%d
  extension .csv
  ...
}

Обратите внимание, что dateext преднамеренно пуст.

23 голосов
/ 05 марта 2012

Чтобы вставить дату в имя файла (а не как расширение) файла в Linux при вращении файла, его правильно использовать:

# Daily rotation
    daily

# We keep original file live
    copytruncate

# Rotation is 1 so we have always .1 as extension
    rotate 1

# If file is missing keep working
    missingok

    sharedscripts
    postrotate
            day=$(date +%Y-%m-%d)
            mv blabla.csv.1 /var/www/gamelogs/dir/blabla$day.csv
    endscript
}

Это просто и отлично работает.

...