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.
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)?
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.