Стандарт побудови файлової системи | Квітень, 12, 2000 | |
Вперед | Що де є | Назад |
/var
/var
- Змінні данні
|–account
Протоколи перебігу процесів (коли це підтримується)
|–cache
Данні, що їх кешують програми
|–crash
Дампи системних збоїв (коли підтримується)
|–games
Змінні данні ігор
|–lib
Інформація зміни стану
|–lock
Файли замків
|–log
Файли та каталоги протоколу
|–mail
Файли поштових скриньок користувачів
|–opt
Змінні данні для /opt
|–run
Змінні данні часу виконання
|–spool
Данні черги програми
|–tmp
Тимчасові файли, що їх треба зберегти між завантаженнями
|–yp
Файли бази данних "Служби інформації мережи" (NIS)
У /var
знаходяться файли змінних данних. Це включає каталоги та файли черги, данні адміністративні та протоколювання і допоміжні та тимчасові файли.
Деякі частини /var
не узагальнюються між різними системами. Наприклад, /var/log
, /var/lock
та /var/run
. Інші частини можуть узагальнюватися, особливо /var/mail
, var/cache/man
, /var/cache/fonts
та /var/spool/news
.
/var
визначається тут, щоб зробити можливим монтування /usr
тільки на читання. Все, що має змінюватися в /usr
під час роботи системи (на противагу до змін під час супровіду та встановлення) повинно знаходитися в /var
.
Коли /var
не можливо зробити на окремому розділі, часто краще винести /var
з кореневого розділу та перенести в /usr
. (Це часом робиться щоб зменшити розмір кореневого розділу або коли там дуже мало місця.) Проте, неварто зв'язувати /var
з /usr
бо це ускладнює розрізнення /var
та /usr
та може створити конфлікт назв. Замість цього пов'язуйте /var
з /usr/var
.
Програми зазвичай не повинні додавати каталоги в верхній рівень /var
. Тікі каталоги можливо додавати тільки коли вони мають загально системне значення та після консультацій в розсилці з питань СПФС.
Каталоги cache
, lock
, log
, run
, spool
, lib
та tmp
повинні бути та використовуватися в кожному комплекті; каталоги account
, crash
, games
, mail
та yp
можуть бути присутні та використовуватися коли відповідні можливості та програми є в комплекті.
Деякі каталоги "зарезервовані" щоб їх випадково не захотіли використовувати в яких небудь нових програмах, оскільки це може викликати конфлікт з історичною або місцевою практикою. Це:
/var/backups
/var/cron
/var/lib
/var/local
/var/msgs
/var/preserve
/var/account
: Протоколи виконання процесів (коли підтримується)В цьому каталозі зберігається протокол поточного активного процесу та составні данні експлуатації процесу (які використовуються в деяких Unix подібних системах lastcomm
та sa
).
/var/cache
: Данні, що кешуються програмою/var/cache
- Каталоги для кешу
|-fonts
Місцево згенеровані шрифти
|-man
Місцево відформатована документація
|-www
Данні кешу або проксі WWW
|-<package>
Данні, що кешуються програмами
Каталог /var/cache
введено для кешування програмних данних. Вони генеруються локально внаслідок довготривалого В/В або обчислень. Програма повинна мати можливість перегенерувати або відновити данні. На відміну від /var/spool
, кешовані данні можливо видаляти без втрати данних. Данні повинні зберігати вірність між викликами програми та перезавантаженнями системи.
Файли, що розташовані під /var/cache
можуть видалятися самою програмою, доглядаючим за системою або обома. Програма повинна бути здатною завжди відновити їх після ручного знищення (як правило, це пов'язано з збереженням простору на диску). Інших вимог на формат данних каталогів кешу немає.
Початок обгрунтування
Існування окремого каталогу для кешованих данних дозволяє доглядаючим за системами встановлювати різні диски та правила резервування для різних каталогів у /var
.
Закінчено обгрунтування
/var/cache/fonts
: Місцево згенеровані шрифтиКаталог /var/cache/fonts
треба використовувати для всіх динамічно згенерованих шрифтів. Зокрема, всі шрифти, що їх автоматично генерує mktexpk
повинні зберігатися у відповідно названих каталогах в /var/cache/fonts
.
Зауважимо: Цей стандарт зараз не включає "Структуру каталогів ТЕХ" (документ, що роз'яснює розташування файлів та каталогів ТEX), але його корисно прочитати. Він розташований за адресою:
Інші динамічно створені шрифти також можливо зберігати в цьому "дереві", у відповідно названих підкаталогах /var/cache/fonts
.
/var/cache/man
: Місцево відформатована документація (за бажанням)Для головних машин, що надають розділ /usr
тільки на читання, це стандартне місце розташування для кешування місцево сформатованої документації. Головні машини, що монтують /usr
з дозволом запису (наприклад, встановлення для одного користувача) можуть не використовувати /var/cache/man
та писати сформовані сторінки документації в каталоги cat<section>
безпосередньо в /usr/share/man
. Натомість, ми рекомендуємо, щоб більшість головних машин використовували одну з наступних можливостей:
/var/cache/man
Структура /var/cache/man
повинна відбивати обидва факти: множинна структура самих сторінок допомоги та можливість багатомовної підтримки.
Таким чином, несформована сторінка, що звичайно знаходиться в <path>/man/<locale>/man<section>
, після формування розміщується в /var/cache/man/<catpath>/<locale>/cat<section>
, де <catpath>
отримано з <path>
видаленням з повного шляху до файлу початкової usr
та/або наступної share
частин. (Зауважимо, що частина <locale>
може бути загублена.)
Наприклад, сформована сторінка /usr/share/man/man1/ls.1
буде розміщена в /var/cache/man/cat1/ls.1
, а /usr/X11R6/man/<locale>/man3/XtClass.3x
в /var/cache/man/X11R6/<locale>/cat3/XtClass.3x
.
Записані в /var/cache/man
сторінки допомоги можуть бути зрештою переміщені в заздалегідь підготовані каталоги в структурі джерел man
або видалені; таким же чином, сформовані сторінки можуть бути згодом видалені з структури джерел man
якщо ніхто не звертався до них протягом певного часу.
Коли у вас є сформовані сторінки допомоги на носії типу тільки для читання (наприклад, КД з системного комплекту), їх можно встановити в структурі джерел man
(наприклад, /usr/share/man/cat<section>
).
/var/cache/man
зарезервовано для кешування з записом місцево формуємих сторінок.
Початок обгрунтування
Випуск стандарту 1.2 визначає для цієї структури /var/catman
. Шлях було перенесено під /var/cache
щоб підкреслити динамічну природу сформованих сторінок допомоги. Назва каталогу була замінена на man
щоб дозволити розширення структури шляхом включення інших ніж cat
форматів представлення документації, таких як PostScript, HTML або DVI.
Закінчено обгрунтування
/var/crash
: Копія стану системи на момент аварії (коли підтримується)В цьому каталозі зберігаються копії стану системи на момент аварії. На час ухвалення цієї версії стандарту, аварійні копії стану системи не підтримувалися в Linux
/var/games
: Змінні ігрові данніВсі змінні данні, що відносятся до ігор з /usr
повинні знаходитися тут. У /var/games
повинні знаходитися всі змінні данні, що раніше були в /usr
; постійні данні, такі як тексти підказок, описи рівнів і т.ін., повинні лишатися в іншому місці, такому як /usr/share/games
.
Початок обгрунтування
/var/games
було відокремлено у власну структуру заміст того щоб залишити її на старому місці у /var/lib
, як було у випуску 1.2. Таке відокремлення полегшує місцевий контроль за резервуванням данних, правами доступа та використанням диску, водночас дозволяючи узагальнення та зменшення метушні в /var/lib
. Крім того, /var/games
- шлях, що традиційно використовується в BSD.
Закінчено обгрунтування
/var/lib
: Змінна інформація стану/var/lib
-- Змінна інформація стану
|-<editor>
Файли резервних копій та стану редактора
|-misc
Інші файли стану
|-xdm
Змінні данні менеджера Х екрана
|-<pkgtool>
Файли підтримки пакування
|-<package>
Файли стану для пакетів та підсистем
В цій структурі зберігаються відомості про стан програм або систем. Відомості про стан - данні, що їх програма змінює під час виконання і вони свої для кожної окремої системи. Користувач ніколи не повинен власноруч змінювати файли в /var/lib
, щоб налаштувати роботу пакету.
Інформація про стан зазвичай використовується щоб зберегти умови програми (або групи взаємно пов'язаних програм) між викликами та між різними запусками тієї ж програми. Інформація про стан повинна залишатися вірною після перезавантаження, не повинна містити вивід та не повинна бути данними, що пишуться в буфер.
Програма (або група пов'язаних програм) повинні використовувати підкаталог в /var/lib
для своїх данних. Є один обов'язковий каталог, /var/lib/misc
, що призначений для файлів стану яким не потрібен окремий підкаталог; інші підкаталоги повинні бути присутніми лише коли програми, що їх вимагають, є в комплекті.
/var/lib/<name>
- місце, що його треба використовувати для підтримки всіх пакетів комплекту. Різні комплекти можуть, звичайно, використовувати різні назви.
Важлива відмінність цієї версії стандарту від попередньої - програми зараз повинні використовувати підкаталог /var/lib
.
/var/lib/<editor>
: Стан та файли резервних копій редакторуВ Цих каталогах знаходяться збережені файли, що згенеровані у випадках будьякого непередбаченого завершення роботи редактора (наприклад, elvis, jove, nvi).
Інші редактори можуть не вимагати каталогу для файлів відновлення після аварії, але можуть вимагати чітко визначеного місця для збереження іншої інформації під час їх роботи. Такі відомості повинні зберігатися в підкаталозі в /var/lib
(наприклад, GNU Emacs буде класти файли замків в /var/lib/emacs/lock
).
Майбутні редактори можуть потребувати додаткової інформації стану окрім файлів відновлення після аварії та файлів замків - ця інформація повинна також зберігатися під /var/lib/<editor>
.
Початок обгрунтування
Попередні випуски Linux, як і всі комерційні постачальники, використовували /var/preserve
для vi та його клонів. Проте, кожен редактор використовує свій власний формат для файлів відновлення, отже для кожного потрібен свій власний каталог.
Файли замків кожного редактора, звичайно дуже різняться від файлів замків пристроїв або ресурсів, що зберігаються в /var/lock
, і, відповідно, повинні зберігатися в /var/lib
.
Закінчено обгрунтування
var/lib/misc
: Інші змінні данніВ цьому каталозі знаходяться змінні данні, що не розміщують в окремих підкаталогах в /var/lib
. Треба намагатися використовувати унікальні назви в цьому каталозі, щоб уникнути конфліктів у просторі назв.
Зауважимо, що в цій структурі повинні зберігатися файли, що зберігаються в /var/db
в поточному випуску BSD. До них належать locate.database
, mountdtab
та база(и) данних символів ядра.
/var/lock
: Файли замківФайли замків повинні зберігатися в межах структури каталогів /var/lock
.
Файли замків пристроїв, такі як файли замків послідовних пристроїв, що раніше були або в /usr/spool/locks
або в /usr/spool/uucp
, зараз повинні бути в /var/lock
. Потрібно використовувати угоду про назви, що має вигляд - LCK..
за яким йде базова назва файлу пристрою. Наприклад, щоб замкнути /dev/cua0
буде створено файл LCK..cua0
.
Для файлів замків пристроїв треба використовувати формат файлу замка HDB UUCP. Формат HDB - збереження позначника процесу (PID) як десятковий номер ASCII з десяти байт після якого стоїть символ нового рядка. Наприклад, коли процес 1230 запише файл замка, він буде складатися з одинадцяти символів: пустий проміжок, проміжок, проміжок, проміжок, проміжок, проміжок, один, два, три, нуль та символ "новий рядок".
Тоді кожен хто захоче використати /dev/cua0
повинен читати файл замка та діяти відповідно (всі замки в /var/lock
повинні бути вільними для читання).
/var/log
: Каталоги та файли протоколуВ цьому каталозі знаходяться різні файли протоколу. Більшість протоколів повинні знаходитися в цьому каталозі або у відповідних підкаталогах.
lastlog
запис останього входу в систему кожного користувача
messages
системні повідомлення від syslogd
wtmp
запис всіх входів в систему та від'єднань
/var/mail
: Файли поштових скриньок користувачівПоштова черга повинна бути доступна через /var/mail
та файли поштової черги повинні мати форму <username>
. /var/mail
може бути символічним зв'язком до іншого каталогу.
Файли поштових скриньок користувачів повинні зберігатися тут у стандартному форматі поштових скриньок для UNIX.
Початок обгрунтування
Логічне розташування для цього каталогу було змінено з /var/spool/mail
для того щоб привести СПФС у відповідність з майже кожною реалізацією UNIX. Ця зміна важлива для взаємодії, оскільки один /var/mail
часто узагальнюється між багатьма головними машинами та багатьма реалізаціями UNIX (незважаючи на проблеми блокуючі NFS).
Важливо зазначити, що немає потреби фізично переміщати поштову чергу в це місце. Проте, програми та файли заголовків повинні бути змінені на використання /var/mail
.
Закінчено обгрунтування
/var/opt
: Змінні данні для /opt
Змінні данні пакетів з /opt
повинні встановлюватися в /var/opt/<package>
, де <package>
назва підструктури в /opt
, де зберігаються постійні данні з додаткового програмного пакету, за виключенням де замінено іншим файлом в /etc
. Ніяких правил на внутрішню організацію /var/opt/<package>
не пропонується.
Початок обгрунтування
Дивись обгрунтування для /opt
.
Закінчено обгрунтування
/var/run
: Змінні данні часу виконанняЦей каталог містить данні відомостей про систему, що описують її з моменту завантаження. Файли в цьому каталозі повинні вичищатися (видалятися чи усікатися як відповідно) на початку процесу завантаження.
Програми можуть мати підкаталоги в /var/run
; це заохочуэться для програм, що мають быльше ныж один файл часу виконання.
Зауважимо: програми, що виконуються не наглядачем, можуть не мати можливості створювати файли в /var/run
і черз це їм потрібен підкаталог яким володіє відповідний користувач.
Файли визначників процесу (PID), які раніше знаходилися в /etc
, треба розміщувати в /var/run
. Домовленість про створення назв для PID файлів така: <program-name>.pid
. Наприклад, файл PID для crond
буде /var/run/crond.pid
.
Внутрішній формат PID файлів залишився без змін. В файлі має бути визначник процесу як ASCII кодоване десяткове і за ним символ "новий рядок". Наприклад, коли crond
був процес за номером 25, /var/run/crond.pid
буде мати три символи: два, п'ять та "новий рядок".
Програми, що читають PID файли, повинні бути гнучкими, щодо змісту того, що вони отримують. Наприклад, вони повинні ігнорувати додаткові пусті проміжки, перші нулі та останній символ "новий рядок", або додаткові рядки в PID файлі. Програми, що генерують PID файли, повинні користуватися простими правилами, що наведені в попередньому параграфі.
Файл utmp
, в якому зберігається інформація про поточного користувача в системі, розташовано в цьому каталозі.
Програми, що створюють нерезидентні сокети UNIX-domain, повинні розміщувати їх в цьому каталозі.
/var/spool
: Данні черги програми/var/spool
- Каталоги для черг
|-lpd
Каталог черги принтера
|-mqueue
Черга пошти, що виходить
|-news
Черга новин
|-rwho
Файли Rwhod
|-uucp
Каталог черги для UUCP
У /var/spool
зберігаються данні, що очікують на подальшу обробку певного типу. Данні в /var/spool
- це робота, яка буде виконана пізніше (програмою, користувачем, наглядачем); часто вони видаляються після обробки.
Файли замків UUCP повинні знаходитися в /var/lock
. Дивись вище розділ про /var/lock
.
/var/spool/lpd
: Черги друку демону пристрою порядкового друку/var/spool/lpd
- Каталог черги принтера
|-<printer>
Черга певного принтера (за бажанням)
Файл замка для lpd
, lpd.lock
, треба помістити в /var/spool/lpd
. Очікується, що файл замка для кожного принтера буде розміщено в каталозі черги для цього принтера та названо lock
/var/spool/rwho
: Файли RwhodЦей каталог зберігає rwhod
відомості для інших систем локальної мережи.
Початок обгрунтування
Деякі випуски BSD використовують для цих данних /var/rwho
; враховуючи їх історичне положення в /var/spool
на інших системах та можливість з великою достовірністю трактувати їх як данні для подальшого опрацювання, це положення було визнано більш відповідним.
Закінчено обгрунтування
/var/tmp
: Тимчасові файли, що повинні зберігатися між завантаженнямиКаталог /var/tmp
зроблено доступним для програм яким потрібні тимчасові файли, що повинні зберігатися між завантаженнями системи. Отже, данні, що записані в /var/tmp
більш постійні ніж данні в /tmp
Данні та каталоги, що записані в /var/tmp
не повинні видалятися під час завантаження системи. Хоча, данні записані в /var/tmp
зазвичай видаляються певним чином, рекомендується щоб видалення відбувалося з більшим інтервалом ніж з /tmp
.
/var/yp
: Файли бази данних Служби інформації мережи (Network Information Service (NIS))Змінні данні для Служби інформації мережи (NIS), раніше відомої як Sun Yellow Pages (YP), повинні бути в цьому каталозі.
Початок обгрунтування
/var/yp
- стандартний каталог для NIS(YP) данних і найчастіше використовується в документації на NIS та в системах.
Не треба плутати NIS з Sun NIS+, для якої використовується інший каталог /var/nis
.
Закінчено обгрунтування
Перекладено А. М. Добровольським © 2001 р.
Вперед | Що де є | Назад |