Что может пойти не так, если / var / tmp находится во временной файловой системе?


8

Я прочитал, что я не должен монтировать / var / tmp как временную файловую систему (например, как tmpfs), потому что файлы в / var / tmp не должны быть удалены при перезагрузке. Это верно?

Предположим, я монтировал / var / tmp как tmpfs, поэтому его содержимое удаляется при каждой перезагрузке. Это было бы плохо? Если да, что может пойти не так? Насколько это было бы плохо?


@ JMoore, я спрашиваю о /var/tmp, а не о /tmp. Мои извинения, если это было неясно.
DW

Ответы:


11

/var/tmpОжидается, что файлы в будут постоянными при перезагрузках. От FHS :

Каталог / var / tmp доступен для программ, которым требуются временные файлы или каталоги, которые сохраняются между перезагрузками системы. Поэтому данные, хранящиеся в / var / tmp, более постоянны, чем данные в / tmp.

Файлы в /var/tmpчасто являются файлами кэша или временными файлами, которые не должны исчезать в случае внезапного сбоя питания. Хотя нельзя ожидать, что они будут жить вечно. Распространено очистить старые файлы из /var/tmpпо расписанию.

Вот несколько примеров /var/tmpиспользования:

  • Некоторые реализации vi (например nvi) помещают свои файлы восстановления после сбоя /var/tmp. Если это временная файловая система, у вас нет шансов что-либо восстановить. Vim помещает файлы восстановления после сбоя в тот же каталог, что и редактируемый файл.
  • Я использую плагин Firefox, который позволяет мне редактировать текстовые поля в Vim. Для этого плагин создает временный файл в /var/tmp( /tmpхотя это по умолчанию) и передает файл в Vim. Если мой компьютер теряет питание, когда я использую эту функцию, мои записи будут в безопасности и будут в порядке /var/tmp.
  • Инструменты для редактирования текста, такие как exи sudoeditположить временные файлы в /var/tmp. Если /var/tmpего смонтировать как tmpfs, вы рискуете потерять данные из-за непредвиденных сбоев питания.
  • У git-archive(1)man-страницы есть следующий пример.

    Git архив --format = tar --prefix = мусор / HEAD | (cd / var / tmp / && tar xf -)
    Создайте архив tar, который содержит содержимое последнего коммита
    в текущей ветви, и извлеките его в каталог / var / tmp / junk.

    Вполне возможно, что /var/tmpкаталог был выбран так, чтобы извлеченное содержимое архива не было потеряно из-за внезапного сбоя питания.

  • Так /var/tmpкак очищается периодически, но не неожиданно, обычно там хранятся временные журналы и тестовые базы данных. Например, в arpd man-странице /var/tmpиспользуется в качестве расположения тестовой базы данных для некоторых примеров.

    arpd -b /var/tmp/arpd.db
    Запустить arpd для сбора безвозмездного ARP, но не связываться с функциональностью ядра.

Таким образом, ваша система вряд ли получит серьезные повреждения, если вы подключитесь /var/tmpкак tmpfs. Это может быть нежелательно, так как вы рискуете потерять информацию при сбоях питания и перезагрузках.



Спасибо вам. Я прочитал спецификацию FHS, и я понимаю, что в принципе приложения могут использовать / var / tmp для хранения вещей - мне было более любопытно узнать конкретные примеры того, насколько проблематично это может быть на практике.
DW

@DW: я приведу больше примеров.

2
@DW Также /var/tmpможет быть больше /tmp, поэтому некоторые приложения ожидают размещения там больших временных файлов. Если /var/tmpна tmpfs, ваша система может не хватить памяти или начать перебивать.
Жиль "ТАК - перестань быть злым"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.