Изменчивые файлы: Как работать с /var директрией

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

По этим причинам многие OpenEmbedded дистрибутивы используют основанную на tmpfs файловую систему в памяти для директории /var вместо использования диска или флеша. В следствие этого всё содержимое директории /var теряется при отключении питания или перезагрузке и поэтому во всех пакетах необходима особое внимание при работе с этой директорией. Даже если ваш дистрибутив не использует основанную на tmpfs файловую систему для /var, вы должны разрабатывать пакеты так, будто вы используете такую систему, чтобы быть уверенными в корректной работе пакетов в дистрибутивах с tmpfs /var . Такая особая обработка доступна через populate-volatiles.sh скрипт.

Замечание

Если ваш пакет требует каких-либо файлов, директорий или символических ссылок в директории /var, то в нём должны использоваться возможности populate-volatiles.

Описание изменчивых файлов

Этот раздел нужно дополнить.

  • Как работать с изменчивыми файлами

  • Умолчания, относящиеся к изменчивым файлам

  • Не включайте никаких /var файлов в пакеты

  • Даже если ваш дистрибутив не использует /var на tmpfs, другие - используют

  • Обновление кэша изменчивых файлов в процессе установки

Журналирование и файлы журналов

В следствие изменчивости и/или небольшого объёма файловой системы /var некоторые дистрибутивы используют методы журналирования, отличные от записи в файл. Наиболее типичным примером является использование в памяти цикличного буфера, который может быть прочитан командой logread.

Чтобы убедиться в том, что каждый дистрибутив способен реализовать журналирование подходящим методом, все пакеты должны быть по умолчанию настроены на журналирование через syslog, если это возможно, а не напрямую в файл. Если дистрибутив и/или конечный пользователь запрашивает журналирование в файл, то это может быть реализовано через настройку syslog и/или вашего приложения.

Summary

Вкратце, при работе с /var требуются выполнить следующие условия:

  • Настроить всё журналирование на использование syslog когда это возможно, что позволит перенести выбор конкретного места хранения логов на отдельные дистрибутивы.

  • Не включать /var директории, файлы или символические ссылки в пакеты, так как они будут потеряны при перезагрузке.

  • Список гарантированно существующих директорий приведён в файле default volatiles: recipes/initscripts/initscripts-1.0/volatiles.

  • Для любых других директорий, файлов или ссылок, которые требуется хранить в /var вы должны предоставить собственный список как часть пакета.