Как я могу настроить logrotate для SCP нескольких файлов журнала

Я хотел бы скопировать несколько файлов из logrotate, поэтому я попробую это:

/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log /var/log/mysql/error.log {
    daily
    rotate 7
    missingok
    create 640 mysql adm
    compress
    sharedscripts
    prerotate
            scp /var/log/mysql.log root@w.x.y.z:/var/log/mysql/mysql-`date -d "$D" '+%d'`-`date -d "$D" '+%m'`.txt
            scp /var/log/mysql/error.log root@w.x.y.z:/var/log/mysql/error-`date -d "$D" '+%d'`-`date -d "$D" '+%m'`.txt
    endscript
    postrotate
            test -x /usr/bin/mysqladmin || exit 0
            # If this fails, check debian.conf!
            MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
            if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
              # Really no mysqld or rather a missing debian-sys-maint user?
              # If this occurs and is not a error please report a bug.
              #if ps cax | grep -q mysqld; then
              if killall -q -s0 -umysql mysqld; then
                exit 1
              fi
            else
              $MYADMIN flush-logs
            fi
    endscript
}

Но все скопированные файлы пусты. У меня нет этой проблемы с nginx logrotate. Я полагаю, это потому, что они представляют собой несколько записей для ротации.

Как я могу получить текущий файл (я полагаю, что это цикл для нескольких файлов, может я ошибаюсь)?

0
задан 20 January 2016 в 11:22

1 ответ

Хорошо, таким образом, кажется, что цикл Linux для каждого регистрирует, если опция sharedscripts не определяется.

Переменный 1$ содержит фактический текущий файл вращения или список текущих файлов вращения, если sharedscripts определяется.

0
ответ дан 20 January 2016 в 21:22
  • 1
    Это решение работало на меня с рабочим столом Ubuntu 17.04. Спасибо. – Mena 8 June 2017 в 23:15

Другие вопросы по тегам:

Похожие вопросы: