Вопрос или проблема
Я хочу создать каталог в $TMP_DIR
или /tmp/
, который будет существовать всегда (т.е. никогда не будет удален), но будет поддерживаться ОС, т.е. его содержимое может быть удалено, если оно не было открыто/использовано какое-то время или системе нужно больше места.
По сути, это каталог для случайных временных файлов, о котором можно забыть, но не нужно будет восстанавливать его каждый раз, когда я хочу его использовать, и его путь не изменяется, чтобы скрипты/приложения могли его использовать.
Как лучше всего этого достичь?
Я вижу в /etc/default/periodic.conf
следующие параметры:
# 110.clean-tmps
daily_clean_tmps_enable="YES" # Удалять файлы ежедневно
daily_clean_tmps_dirs="/tmp" # Удалять здесь
daily_clean_tmps_days="3" # Если не доступен в течение
daily_clean_tmps_ignore=".X*-lock .X11-unix .ICE-unix .font-unix .XIM-unix"
daily_clean_tmps_ignore="$daily_clean_tmps_ignore quota.user quota.group" # Не удалять эти
daily_clean_tmps_verbose="YES" # Упомянуть удаленные файлы
Могу ли я добавить путь к daily_clean_tmps_ignore
, например, ...="my-persistant-unique-dir
, и он будет соблюден?
По сути, это каталог для случайных временных файлов, о котором можно забыть, но не нужно будет восстанавливать его каждый раз, когда я хочу его использовать, и его путь не изменяется, чтобы скрипты/приложения могли его использовать.
Вам нужен /var/tmp
для этого. Он поддерживается системой, всегда там (если вы его не удалите), не очищается (если вы это не настроите), и путь стабилен. В FHS есть более подробная информация.
Ответ или решение
Чтобы создать постоянную временную директорию, которая будет хранить временные файлы и управляться операционной системой, необходимо обратить внимание на использование каталога /var/tmp
. Этот каталог предназначен для хранения временных данных, которые могут быть необходимы для работы приложений, и в отличие от /tmp
, содержимое /var/tmp
не удаляется по истечении сеанса или при перезагрузке системы.
Почему именно /var/tmp
?
-
Постоянство: Директория
/var/tmp
существует на большинстве систем по умолчанию и сохраняется при перезагрузке. Это делает ее отличным выбором для хранения временных файлов, которые вам не нужно регулярно создавать заново. -
Управление ОС: Как правило, администраторы системы или политики управления могут настроить правила автоматического удаления старых или неиспользуемых файлов в этой директории. В отличие от
/tmp
, где файлы могут исчезнуть после перезагрузки, содержимое/var/tmp
может сохраняться на более длительные сроки. -
Согласованность пути: Путь
/var/tmp
является стабильным, что позволяет скриптам и приложениям работать без необходимости изменения кода в случае перемещения директории.
Организация использования /var/tmp
Чтобы использовать /var/tmp
для хранения временных файлов, достаточно создать в нем собственную уникальную директорию. Например:
mkdir /var/tmp/my_persistent_temp_dir
После этого вы сможете помещать в эту директорию любые временные файлы, не беспокоясь о том, что они будут случайно удалены операционной системой.
Настройка автоматических правил
Если вы хотите настроить автоматическую очистку содержимого, которое не использовалось долго, вы можете рассмотреть возможность использования systemd
или cron
для создания скрипта очистки, который будет проверять время последнего доступа к файлам и удалять их, если они не использовались в течение установленного времени.
Настройка periodic.conf
Вы также упомянули файл конфигурации /etc/default/periodic.conf
. В нем можно установить правила для автоматической очистки временных файлов. Однако добавление вашей директории к переменной daily_clean_tmps_ignore
скорее всего не сработает, так как эта переменная предназначена для исключения директорий при ежедневной очистке в /tmp
, но не будет применяться ко всему каталогу /var/tmp
.
Резюме
Для ваших нужд лучше всего подойдет использование директории /var/tmp
, так как она обеспечивает стабильность пути, постоянство существования и управление системой. Тем не менее, в случае если вам необходима отдельная политика для конкретной директории, следует самостоятельно реализовать механизм автоматической очистки через скрипты, настраиваемые под ваши требования.
Таким образом, вы сможете обеспечить надежное хранение временных файлов, избегая избыточного администрирования и обеспечивая доступность для ваших приложений и скриптов.