#linux #логирование
Есть приложение на с++, которое пишет данные в лог. Используется syslog(LOG_INFO,"Init"), к примеру. Данные записываются в /var/log/messages. При перезагрузке системы данные из /var/log/messages удаляются. Есть ли способ сделать так, чтобы логи не удалялись? Предполагаю, что нужно использовать syslog.conf. Как можно решить проблему? Операционная система: busybox/linux.
Ответы
Ответ 1
это, вероятно, т.н. «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, а в файл, расположенный на блочном устройстве. или, например, отсылал логируемую информацию по сети на другой компьютер.
Комментариев нет:
Отправить комментарий