Logrotate Postrotate aws s3 Wildcards - PullRequest
       29

Logrotate Postrotate aws s3 Wildcards

0 голосов
/ 22 апреля 2020

Я пытаюсь повернуть несколько файлов журнала и загрузить их на S3 с помощью команды postrotate. Тем не менее, похоже, что сценарий postrotate не расширяет подстановочный знак * glob:

Моя конфигурация logrotate:

/var/log/application/*.log {
 missingok
  dateext
  size 500M
  notifempty
  copytruncate
  compress
  rotate 1512
  postrotate
     /usr/bin/aws s3 mv /var/log/application/*.gz  s3://mygreatbucket/
  endscript
}

Ошибка, которую я вижу при запуске logrotate с этой конфигурацией:

The user-provided path /var/log/application/*.gz does not exist.

Это сообщение от команды aws cli s3. Что я могу повторить, если я вручную выполню свою команду:

/usr/bin/aws s3 mv '/var/log/application/*.gz'  s3://mygreatbucket

(обратите внимание на одинарные кавычки).

Что я могу сделать, чтобы подстановочный знак глобуса был расширен во время шага поствращения?

1 Ответ

0 голосов
/ 22 апреля 2020

В документации AWS cli говорится, что их инструмент CLI напрямую поддерживает символы подстановки. Вместо этого вы должны использовать параметры --include или --exclude.

В итоге я использовал:

/usr/bin/aws s3 mv /var/log/application/ s3://mybucket --exclude '*' --include '*.gz' --recursive

Флаг --recursive важен, иначе он выиграл не работает.

...