У меня есть служба, которая настаивает на хранении файлов журнала в ужасных местах. После того, как все попытки изменить место их хранения потерпели неудачу, моей следующей идеей было создать жесткие ссылки на эти файлы в более чистом месте. Это вызвало у меня беспокойство:
Если я настрою logrotate для управления этими файлами журналов, будет ли он работать должным образом (чередовать журналы, поддерживать работу моих ссылок)? Или logrotate случайно разорвет ссылки и оставит журналы, накапливающиеся в своих родных местах, но не в моем центральном?
Я считаю, что могу настроить logrotate для воссоздания жестких ссылок после ротации, если это необходимо. Но нужно ли это?
Не ссылаться на файлы: ссылка на каталог. Если вы установите ссылку на файл, у вас могут возникнуть проблемы, когда приложение создает новый файл журнала, либо как часть ротации журнала (в зависимости от того, как это делается), либо когда вы останавливаете, а затем перезапускаете приложение.
ln -s /path/to/where/application/creates/logs/ /var/log/application
Я думаю, вы можете использовать символические ссылки на желаемое новое местоположение и указать logrotate повернуть журналы в той папке, в которой они фактически находятся; ln -s /path/file /path/to/newlink
Чтобы ответить на ваш вопрос, это зависит от того, какое вращение вы делаете. Например, произойдет следующая прогрессия:
Метод копирования и усечения:
Это оставляет резервные копии файлов журналов в старом месте.
Исправить это довольно просто: настройте logrotate, чтобы ротация журналов в новый расположение. У старого все еще будет растущий файл, но это будет только один.
Метод копирования и создания:
Этот метод наиболее проблематичен, и вам понадобится некоторая магия после поворота, чтобы очистить его.