Страницы

Поиск по вопросам

четверг, 14 февраля 2019 г.

Сохранение логов после перезагрузки системы

Есть приложение на с++, которое пишет данные в лог.
Используется syslog(LOG_INFO,"Init"), к примеру. Данные записываются в /var/log/messages
При перезагрузке системы данные из /var/log/messages удаляются. Есть ли способ сделать так, чтобы логи не удалялись? Предполагаю, что нужно использовать syslog.conf
Как можно решить проблему?
Операционная система: busybox/linux


Ответ

это, вероятно, т.н. «embedded»-система. и каталог /var (или только /var/log) находится на временной файловой системе (скорее всего, типа tmpfs), которая расположена в оперативной памяти, и создаётся при загрузке системы.
пример проверки (это дистрибутив openwrt):
$ df /var Filesystem 1K-blocks Used Available Use% Mounted on tmpfs 63268 380 62888 1% /tmp $ ls -ld /var lrwxrwxrwx 1 root root 4 Sep 17 2013 /var -> /tmp
делается это с целью сохранения ресурса накопителя информации, который в таких устройствах обычно может выдержать довольно ограниченное количество операций записи.

не зная подробностей об используемом вами дистрибутиве, могу предположить лишь такие общие варианты решения:
изменить вашу программу, чтобы она писала данные в файл, расположенный на блочном устройстве хранения информации; изменить систему инициализации вашего дистрибутива так, чтобы каталог /var или /var/log или хотя бы файл /var/log/messages располагался не в памяти, а на блочном устройстве; изменить конфигурацию используемого вами системного логгера так, чтобы он записывал не в файл /var/log/messages, а в файл, расположенный на блочном устройстве. или, например, отсылал логируемую информацию по сети на другой компьютер.

Комментариев нет:

Отправить комментарий