Como posso configurar o logrotate para vários arquivos de log do SCP?

0

Eu gostaria de copiar vários arquivos do logrotate, então eu tento isto:

/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 [email protected]:/var/log/mysql/mysql-'date -d "$D" '+%d''-'date -d "$D" '+%m''.txt
            scp /var/log/mysql/error.log [email protected]:/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
}

Mas todos os arquivos copiados estão vazios. Eu não tenho esse problema com o nginx logrotate. Acho que é porque são múltiplas entradas para rotação.

Como posso obter o arquivo atual (suponho que seja um loop para vários arquivos, talvez eu esteja errado)?

    
por Inglebard 28.09.2015 / 10:25

1 resposta

0

Ok, parece que o laço linux para cada arquivo se a opção sharedscripts não está definida.

A variável $ 1 contém o atual arquivo rotativo atual ou a lista dos arquivos rotativos atuais se os sharedscripts estiverem definidos.

    
por Inglebard 20.01.2016 / 10:27