LINUX.ORG.RU

Отчистка /var/tmp

 


0

2

Здравствуйте.
Небольшой вопрос - когда отчищается /var/tmp? С /tmp понятно - при загрузке сервисом bootmisc (настройка в /etc/conf.d/bootmisc):

#conf.d/bootmisc
# List of /tmp directories we should clean up
clean_tmp_dirs="/tmp"
Почему здесь не указана /var/tmp, а раз так, то как она зачищается иначе? Может вообще не отчищается?

/var/tmp не должна очищаться. man hier

XMs ★★★★★ ()

У меня в /etc/fstab настроена очистка /var/tmp:

tmpfs /var/tmp tmpfs defaults,noatime,nodiratime,size=8G 0 0

Lavos ★★★★★ ()
Последнее исправление: Lavos (всего исправлений: 1)

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

Fist ()

Можно ли в gentoo быть уверенным в том, что /tmp не будет зачищенна если не было перезагрузки?

pavlick ★★ ()

/var/tmp != /tmp

У меня там, например, живёт ccache и kde-шные кэши.

Black_Shadow ★★★★★ ()

Цитата из man hier:

       /var/tmp
              Как и /tmp, этот каталог содержит временные файлы, но которые могут храниться неопределённое время.

То есть они НЕ ОБЯЗАНЫ удаляться при каждом ребуте. Но если ты хочешь их удалять - вперед, можешь сделать это через bootmisc

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Всё же полной ясности это не вносит. Должны, не должны, удалим, не удалим. Что за гадание? Стандартизировали бы какой-нибудь механизм для всех и описали принцип. А так, что туда писать? В gentoo не затрут, а где-нибудь затрут. Бардак. Имхо, tmp директории надо затирать при перезагрузке, а если кому очень надо, то пусть настраивает расписание.

pavlick ★★ ()

Даже для /var/run ничего конкретного не обещают.

/var/run
Run-time  variable  files,  like  files  holding  process
identifiers (PIDs) and logged user information (utmp).  Files in
this directory are usually cleared when the system boots.
Ну допустим, что run привязан к перезагрузке. Возможно ли создать в run загончик с правами 0777, который и сам бы не сносился перезагрузкой? Понятно, что в генте можно подправить bootmisc для какой-нибдуь директории, но существует ли общий механизм? Не будешь же всё рутом запускать, запись в home во внимание не берём.

pavlick ★★ ()
Ответ на: комментарий от pavlick

Ну допустим, что run привязан к перезагрузке. Возможно ли создать в run загончик с правами 0777, который и сам бы не сносился перезагрузкой?

man tmpfiles.d
LESS='-p -B' man mount
ArcFi ()
Ответ на: комментарий от pavlick

Стандартизировали бы какой-нибудь механизм для всех и описали принцип.

Механизм чего - очистки? Это решать системе инициализации. В systemd есть tmpfiles.d, в котором прописан период хранения всяких временных файлов

Pinkbyte ★★★★★ ()
Ответ на: комментарий от ArcFi

tmpfiles.d да это хорошая штука, только что поигрался. Не знал о таком, вы ответили на мои вопросы, спасибо.

Механизм чего - очистки? Это решать системе инициализации. В >>systemd есть tmpfiles.d, в котором прописан период хранения >>всяких временных файлов

Ну я понял, что к стандартным временным директория нет никаких гарантий, отчасти поэтому понадобилось делать tmpfiles.d ))

А почему tmpfiles.d привязана к systemd? У меня s-d нет, а тмпфайлз работает.

pavlick ★★ ()

Благодарю всех за ответы, тему не зря завёл, давно мне покая не давали вопросы, которые решает tmpfiles.d.

pavlick ★★ ()

Ребят, небольшое уточнение: почему я запрашивал права через tmpfiles.d 0777:

D /var/tmp/my_dir__ 0777 pavlick pavlick

А получил права 0755 (вроде того, my_dir__ уже снёс)?

pavlick ★★ ()
Ответ на: комментарий от pavlick

А почему tmpfiles.d привязана к systemd? У меня s-d нет, а тмпфайлз работает.

Он и не привязан. ЕМНИП systemd первым его себе запилил, потому tmpfiles.d и ассоциируют с ним. Большинство популярных систем инициализации уже реализовали у себя такое же, потому оно почти везде работает.

devsdc ★★ ()
Ответ на: комментарий от false

похоже на то, umask как раз 0022. Но зачем оно так работает? Я ведь попросил конкретные права, чего оно самодеятельностью занимается?

pavlick ★★ ()
Ответ на: комментарий от false

Странный этот umask, я на него вообще внимания никогда не обращал, пользовался цифровой формой прав, меня ничем не ограничивали. Пример:

pavlick@tux ~ $ touch 1f 2f
pavlick@tux ~ $ chmod =rwx 1f && chmod 0777 2f
pavlick@tux ~ $ ls -l
итого 16
-rwxr-xr-x 1 pavlick pavlick    0 май  4 23:39 1f
-rwxrwxrwx 1 pavlick pavlick    0 май  4 23:39 2f
Ерунда какая-то. То umask применяется, то нет.

pavlick ★★ ()
Ответ на: комментарий от pavlick

У меня s-d нет, а тмпфайлз работает.

Если бы было, то можно было бы обойтись одним mount-юнитом без tmpfiles.d.

почему я запрашивал права через tmpfiles.d 0777
А получил права 0755

Содержимое точки монтирования и права на неё скрываются:

# chmod 777 1
# chmod 750 2
# ls -ld 1
drwxrwxrwx. 2 root root 4096 май  4 17:49 1
# mount --bind 2 1
# ls -ld 1
drwxr-x---. 2 root root 4096 май  4 17:49 1

Ерунда какая-то. То umask применяется, то нет.

По идее, он прописан в системных настройках профиля, но можно переопределить в пользовательских.

grep -r umask /etc/profile* 2>/dev/null

ArcFi ()
Ответ на: комментарий от ArcFi

Дело точно не в umask, поменял на 000 и на выходе tmpfiles.d получаю режим 0755.

Содержимое точки монтирования и права на неё скрываются:

Только не пойму - какая связь? Скрываются права и содержимое директории контейнера. И потом, my_dir__ не монтируется, иначе бы содержимое /var/tmp было бы скрыто и права бы изменились у /var/tmp, а не у my_dir__. Причина такого поведения (0755 вместо 0777) для меня пока абсолютна непонятна. Или я вас не понимаю.

pavlick ★★ ()

В общем у меня сложилось впечатление, что tmpfiles.d в генте какая-то кривая, может недопилили ещё, а может раздумали делать. Показательно то, что даже нет man страницы. Если вместо D использовать d, то права получается задавать, также не работает age. Короче кривая какая-то реализация.

pavlick ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.