У меня есть служебный файл systemd, который запускает приложение guncorn и генерирует журналы в определенную папку, но я хочу создать logrotate для служебного файла, который будет генерировать мои журналы ежедневно и создавать отдельную папку на основе даты. Как: master_std_err_dd-mm-yyyy.log

Вот мой сервис Systemd:

[Unit]
Description=master daemon
After=network.target

[Service]
WorkingDirectory=/home/ubuntu/master
User=ubuntu
Group=ubuntu
Environment="PYTHONPATH=/home/ubuntu/venv"
ExecStart=/home/ubuntu/venv/bin/gunicorn -b 127.0.0.1:8000 app:app
StandardOutput=file:/home/ubuntu/logs/master_std_out.log
StandardError=file:/home/ubuntu/logs/master_std_err.log
KillMode=process
Restart=always
TimeoutSec=infinity
RestartPreventExitStatus=255

[Install]
WantedBy=multi-user.target
Alias=master.service

Этот файл генерирует мои журналы в /home/ubuntu/logs/master_std_err.log

Но я хочу сделать отдельную папку для этого файла и разделять по дате на ежедневной основе.

/home/ubuntu/logs/master_std_out.log {
    daily
    create 644 root root
    rotate 12
    dateext
    dateformat -%d%m%Y
    postrotate
        echo "A rotation just took place." | mail root
    endscript
}

Я создал conf logrotate, но он не создал никакого журнала.

1 ответ1

0

Чтобы повернуть журналы в другой каталог, вы хотите использовать olddir в вашей конфигурации logrotate:

каталог olddir

Логи перемещаются в каталог для ротации. Каталог должен находиться на том же физическом устройстве, что и вращаемый файл журнала, если только не используется опция copy, copytruncate или renamecopy . Предполагается, что каталог относится к каталогу, содержащему файл журнала, если не указан абсолютный путь. При использовании этой опции все старые версии журнала попадают в каталог . Эта опция может быть переопределена опцией noolddir .


Я создал conf logrotate, но он не создал никакого журнала.

Если вы запустите logrotate -d _filename_ , logrotate обработает файл в режиме отладки, сообщив вам, почему он принимает решения, которые он принимает, поэтому вы обычно можете видеть, почему файл не поворачивается. В режиме отладки фактическое вращение не будет выполнено, поэтому его можно запускать так часто, как это необходимо для правильной работы конфигурации. Кроме того, вы можете использовать -v вместо -d если хотите, чтобы он выполнял реальное вращение, а также сообщал вам, что он делает и почему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .