Стандарт побудови файлової системи Квітень, 12, 2000
Вперед Що де є Назад

5. Структура /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

5.1 /var/account: Протоколи виконання процесів (коли підтримується)

В цьому каталозі зберігається протокол поточного активного процесу та составні данні експлуатації процесу (які використовуються в деяких Unix подібних системах lastcomm та sa).

5.2 /var/cache: Данні, що кешуються програмою

/var/cache - Каталоги для кешу
|-fonts             Місцево згенеровані шрифти
|-man                 Місцево відформатована документація
|-www                 Данні кешу або проксі WWW
|-<package>     Данні, що кешуються програмами

Каталог /var/cache введено для кешування програмних данних. Вони генеруються локально внаслідок довготривалого В/В або обчислень. Програма повинна мати можливість перегенерувати або відновити данні. На відміну від /var/spool, кешовані данні можливо видаляти без втрати данних. Данні повинні зберігати вірність між викликами програми та перезавантаженнями системи.

Файли, що розташовані під /var/cache можуть видалятися самою програмою, доглядаючим за системою або обома. Програма повинна бути здатною завжди відновити їх після ручного знищення (як правило, це пов'язано з збереженням простору на диску). Інших вимог на формат данних каталогів кешу немає.

Початок обгрунтування

Існування окремого каталогу для кешованих данних дозволяє доглядаючим за системами встановлювати різні диски та правила резервування для різних каталогів у /var.

Закінчено обгрунтування

5.2.1 /var/cache/fonts: Місцево згенеровані шрифти

Каталог /var/cache/fonts треба використовувати для всіх динамічно згенерованих шрифтів. Зокрема, всі шрифти, що їх автоматично генерує mktexpk повинні зберігатися у відповідно названих каталогах в /var/cache/fonts.

Зауважимо: Цей стандарт зараз не включає "Структуру каталогів ТЕХ" (документ, що роз'яснює розташування файлів та каталогів ТEX), але його корисно прочитати. Він розташований за адресою:

ftp://ctan.tug.org/tex/.

Інші динамічно створені шрифти також можливо зберігати в цьому "дереві", у відповідно названих підкаталогах /var/cache/fonts.

5.2.2 /var/cache/man: Місцево відформатована документація (за бажанням)

Для головних машин, що надають розділ /usr тільки на читання, це стандартне місце розташування для кешування місцево сформатованої документації. Головні машини, що монтують /usr з дозволом запису (наприклад, встановлення для одного користувача) можуть не використовувати /var/cache/man та писати сформовані сторінки документації в каталоги cat<section> безпосередньо в /usr/share/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.

Закінчено обгрунтування

5.3 /var/crash: Копія стану системи на момент аварії (коли підтримується)

В цьому каталозі зберігаються копії стану системи на момент аварії. На час ухвалення цієї версії стандарту, аварійні копії стану системи не підтримувалися в Linux

5.4 /var/games: Змінні ігрові данні

Всі змінні данні, що відносятся до ігор з /usr повинні знаходитися тут. У /var/games повинні знаходитися всі змінні данні, що раніше були в /usr; постійні данні, такі як тексти підказок, описи рівнів і т.ін., повинні лишатися в іншому місці, такому як /usr/share/games.

Початок обгрунтування

/var/games було відокремлено у власну структуру заміст того щоб залишити її на старому місці у /var/lib, як було у випуску 1.2. Таке відокремлення полегшує місцевий контроль за резервуванням данних, правами доступа та використанням диску, водночас дозволяючи узагальнення та зменшення метушні в /var/lib. Крім того, /var/games - шлях, що традиційно використовується в BSD.

Закінчено обгрунтування

5.5 /var/lib: Змінна інформація стану

/var/lib -- Змінна інформація стану
|-<editor>      Файли резервних копій та стану редактора
|-misc              Інші файли стану
|-xdm                Змінні данні менеджера Х екрана
|-<pkgtool>    Файли підтримки пакування
|-<package>    Файли стану для пакетів та підсистем

В цій структурі зберігаються відомості про стан програм або систем. Відомості про стан - данні, що їх програма змінює під час виконання і вони свої для кожної окремої системи. Користувач ніколи не повинен власноруч змінювати файли в /var/lib, щоб налаштувати роботу пакету.

Інформація про стан зазвичай використовується щоб зберегти умови програми (або групи взаємно пов'язаних програм) між викликами та між різними запусками тієї ж програми. Інформація про стан повинна залишатися вірною після перезавантаження, не повинна містити вивід та не повинна бути данними, що пишуться в буфер.

Програма (або група пов'язаних програм) повинні використовувати підкаталог в /var/lib для своїх данних. Є один обов'язковий каталог, /var/lib/misc, що призначений для файлів стану яким не потрібен окремий підкаталог; інші підкаталоги повинні бути присутніми лише коли програми, що їх вимагають, є в комплекті.

/var/lib/<name> - місце, що його треба використовувати для підтримки всіх пакетів комплекту. Різні комплекти можуть, звичайно, використовувати різні назви.

Важлива відмінність цієї версії стандарту від попередньої - програми зараз повинні використовувати підкаталог /var/lib.

5.5.1 /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.

Закінчено обгрунтування

5.5.2 var/lib/misc: Інші змінні данні

В цьому каталозі знаходяться змінні данні, що не розміщують в окремих підкаталогах в /var/lib. Треба намагатися використовувати унікальні назви в цьому каталозі, щоб уникнути конфліктів у просторі назв.

Зауважимо, що в цій структурі повинні зберігатися файли, що зберігаються в /var/db в поточному випуску BSD. До них належать locate.database, mountdtab та база(и) данних символів ядра.

5.6 /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 повинні бути вільними для читання).

5.7 /var/log: Каталоги та файли протоколу

В цьому каталозі знаходяться різні файли протоколу. Більшість протоколів повинні знаходитися в цьому каталозі або у відповідних підкаталогах.

lastlog     запис останього входу в систему кожного користувача
messages   системні повідомлення від syslogd
wtmp           запис всіх входів в систему та від'єднань

5.8 /var/mail: Файли поштових скриньок користувачів

Поштова черга повинна бути доступна через /var/mail та файли поштової черги повинні мати форму <username>. /var/mail може бути символічним зв'язком до іншого каталогу.

Файли поштових скриньок користувачів повинні зберігатися тут у стандартному форматі поштових скриньок для UNIX.

Початок обгрунтування

Логічне розташування для цього каталогу було змінено з /var/spool/mail для того щоб привести СПФС у відповідність з майже кожною реалізацією UNIX. Ця зміна важлива для взаємодії, оскільки один /var/mail часто узагальнюється між багатьма головними машинами та багатьма реалізаціями UNIX (незважаючи на проблеми блокуючі NFS).

Важливо зазначити, що немає потреби фізично переміщати поштову чергу в це місце. Проте, програми та файли заголовків повинні бути змінені на використання /var/mail.

Закінчено обгрунтування

5.9 /var/opt: Змінні данні для /opt

Змінні данні пакетів з /opt повинні встановлюватися в /var/opt/<package>, де <package> назва підструктури в /opt, де зберігаються постійні данні з додаткового програмного пакету, за виключенням де замінено іншим файлом в /etc. Ніяких правил на внутрішню організацію /var/opt/<package> не пропонується.

Початок обгрунтування

Дивись обгрунтування для /opt.

Закінчено обгрунтування

5.10 /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, повинні розміщувати їх в цьому каталозі.

5.11 /var/spool: Данні черги програми

/var/spool - Каталоги для черг
|-lpd          Каталог черги принтера
|-mqueue    Черга пошти, що виходить
|-news        Черга новин
|-rwho        Файли Rwhod
|-uucp        Каталог черги для UUCP

У /var/spool зберігаються данні, що очікують на подальшу обробку певного типу. Данні в /var/spool - це робота, яка буде виконана пізніше (програмою, користувачем, наглядачем); часто вони видаляються після обробки.

Файли замків UUCP повинні знаходитися в /var/lock. Дивись вище розділ про /var/lock.

5.11.1 /var/spool/lpd: Черги друку демону пристрою порядкового друку

/var/spool/lpd - Каталог черги принтера
|-<printer>           Черга певного принтера (за бажанням)

Файл замка для lpd, lpd.lock, треба помістити в /var/spool/lpd. Очікується, що файл замка для кожного принтера буде розміщено в каталозі черги для цього принтера та названо lock

5.11.2 /var/spool/rwho: Файли Rwhod

Цей каталог зберігає rwhod відомості для інших систем локальної мережи.

Початок обгрунтування

Деякі випуски BSD використовують для цих данних /var/rwho; враховуючи їх історичне положення в /var/spool на інших системах та можливість з великою достовірністю трактувати їх як данні для подальшого опрацювання, це положення було визнано більш відповідним.

Закінчено обгрунтування

5.12 /var/tmp: Тимчасові файли, що повинні зберігатися між завантаженнями

Каталог /var/tmp зроблено доступним для програм яким потрібні тимчасові файли, що повинні зберігатися між завантаженнями системи. Отже, данні, що записані в /var/tmp більш постійні ніж данні в /tmp

Данні та каталоги, що записані в /var/tmp не повинні видалятися під час завантаження системи. Хоча, данні записані в /var/tmp зазвичай видаляються певним чином, рекомендується щоб видалення відбувалося з більшим інтервалом ніж з /tmp.

5.13 /var/yp: Файли бази данних Служби інформації мережи (Network Information Service (NIS))

Змінні данні для Служби інформації мережи (NIS), раніше відомої як Sun Yellow Pages (YP), повинні бути в цьому каталозі.

Початок обгрунтування

/var/yp - стандартний каталог для NIS(YP) данних і найчастіше використовується в документації на NIS та в системах.

Не треба плутати NIS з Sun NIS+, для якої використовується інший каталог /var/nis.

Закінчено обгрунтування


Перекладено А. М. Добровольським © 2001 р.
Вперед Що де є Назад

Made with 1st Page 2000 - Professional tools for real minds.