Как я могу настроить 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. Я полагаю, это потому, что они являются несколькими записями для ротации.
Как я могу получить текущий файл (я полагаю, что это цикл для нескольких файлов, может я ошибаюсь)?
1 ответ
Решение
Итак, похоже, что цикл linux для каждого файла, если опция sharedscripts не определена.
Переменная $1 содержит текущий текущий вращающийся файл или список текущих вращающихся файлов, если определены общие скрипты.