Создание временной папки в GNU/Linux

В системе GNU/Linux есть возможность создавать временные папки (точнее, делать обычную папку временной). Это используется для нужд системы, но это может быть сделано и пользователем. Технически это выглядит как монтирование в директорию специальной файловой системы tmpfs.

Чтобы сделать обычный каталог временным, нужно ввести в терминале с правами суперользователя:
mount -t tmpfs tmpfs ~/temp/
(вместо ~/temp/ подставить каталог, который хотите сделать временным)
Учтите, что tmpfs находится в оперативной памяти. При перезагрузке, выключении или размонтировании временной файловой системы все файлы, хранившиеся в ней, уничтожаются без возможности восстановления.

Автоматическое создание временного каталога

tmpfs может монтироваться при загрузке так же, как и обычная файловая система. Для этого в /etc/fstab пропишите:
tmpfs /home/user/temp/ tmpfs auto,rw 0 0
где /home/user/temp/ замените на нужный путь.

Размер временной директории

Размер директории устанавливается опцией монтирования size. Если она не указывается, размер смонтированной tmpfs будет равен половине размера оперативной памяти.

Комментарии

Только хочу добавить, что папки только в Вантузе, а в нормальных ОС — директории.

Хранить некоторые файлы в ОЗУ — идея хорошая. Только мне не кажется удобной работа через tmpfs. Обычный RAM-диск с проецированием в файл на жестком диске гораздо удобнее. Его можно отключить, упаковать, перенести или архивировать. Я, например, на RAM-диске храню образы виртуальных машин.

И еще для некоторых задач я стал использовать Redis. Чрезвычайно полезная и удобная штука. Грубо говоря, это СУБД, которая располагает данные целиком в ОЗУ, но при желании юзера может синхронизировать содержимое с данными на диске, чтобы пережить перезагрузку. Так вот, для некоторых операций удобнее запихнуть временные данные в ассоциативный массив в Redis, чем сохранять во временной директории. Например, можно промежуточный результат вычислений в R сохранить в Redis, а потом использовать в любой другой программе. Даже если это гигабайты, импорт-экспорт происходит за доли секунды.

Да, "папка" глаза режет.
Зачем tmpfs от суперпользователя, если есть, например, fuse-ramfs, или ramfs из p9p?

comrade аватар

Вообще-то, современные линуксы, обычно, уже используют tmpfs по-умолчанию, так сказать в служебных целях:-)

Чем могут пользоваться и мирные люди:
безо всяких рутов, фстабов и фусей, можно каталоги создавать и писать-читать файлы в /dev/shm (/run/shm), расположенный в оперативке.

Я сам пользуюсь tmpfs через fstab – удобно, быстрее, и ресурс SSD экономится.
в /etc/fstab добавлены:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/spool/postfix tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/cache/apt/archives tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/spool/postfix tmpfs defaults 0 0
tmpfs /home/MY_USER/.cache tmpfs defaults,noatime,mode=1777 0 0
tmpfs /home/MY_USER/.thumbnails tmpfs defaults,noatime,mode=1777 0 0
tmpfs /home/MY_USER/.local/share/gvfs-metadata tmpfs defaults,noatime,mode=1777 0 0
tmpfs /home/MY_USER/.config/libreoffice/4/user/extensions/tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /home/MY_USER/.TrueCrypt tmpfs defaults,noatime,mode=1777 0 0
tmpfs /home/MY_USER/.local/share/.ACEStream tmpfs defaults,noatime,mode=1777 0 0
tmpfs /home/MY_USER/Anki/addons/awesometts/.cache tmpfs defaults,noatime,mode=1777 0 0

А за то, что я на рам-диск логи отправляю, меня уже тут пинали:-)
Тема tmpfs уже на этом сайте не раз "всплывала".

Кстати, в ОЗУ полезно перенести кэш Хромиума/Хрома. Особенно тем юзерам, у которых SSD. По умолчанию Хром какает в ~/.cache/что-то-там и довольно интенсивно. В результате получаем ускорение web-серфинга и спасаем диск от преждевременного износа.

comrade аватар

...Т.е., примерно так (команду запуска хромиума надо изменить):

/usr/bin/chromium-browser --disk-cache-dir=/run/shm/ChromiumCache --password-store=basic

А за то, что я на рам-диск логи отправляю, меня уже тут пинали

А зачем вообще вести журналы, если они затрутся после выключения компа? Вот если, не дай бог, каккеры опорочат ваш компьютер, то как после ресета проводить расследование?

Я пользовался символической ссылкой, но можно и так.

comrade аватар

Firefox Cache – на RAM-disk:
• запускаем FF, в адресной строке вводим about:config
• кликаем в любом месте правой кнопкой, выбираем New -> String
• в качестве имени параметра задаем browser.cache.disk.parent_directory, в качестве значения — путь к папке где будет храниться кэш.
Например, /run/shm/ffcache
Т.е., на рам-диске tmpfs

Я как-то ставил Debian полностью в ОЗУ. Выделил 10 Гб и через VirtualBox поставил. Плюсы: а) все открывается довольно быстро; б) нулевой износ SSD. :)

Или устанавливаем browser.cache.disk.enable в значение false

Автор, считаю что неверно будет в статье про временные папки рассказать про tmpfs и не рассказать про ramfs с rsync. Ведь в связке они дают возможность перекинуть свой браузер целиком вместе с кешем и профилем в оперативную память, параллельно настроив синхронизацию в жесткий диск.
Тот же Хромиум при запуске из ОЗУ летает просто на первой космической. Единственное, желательно размещать его там целиком — не только кеш с профилем, но и бинарники из которых он запускается.
Насчет памяти, у меня ее 8Гб, так что мне плевать на траты оперативы, все равно больше пары ГБ не съест. Тем у кого 4Гб, в приницпе, тоже должно быть все равно, а если все же не хватает, можно использовать замечательную технологию zRam, позволяющую виртуально расширить выделенную в ОЗУ память до девяти и более раз, при условии, что сжатое блочное устройство в ОЗУ забивается только вашим веб-браузером.

Только хочу добавить, что папки только в Вантузе, а в нормальных ОС — директории.

На английской локализации (на которой я сижу) в некоторых программах встречается слово «folder», которое я привык переводить как «папка» («директория» по-английски будет «directory»).

Комментировать

Filtered HTML

  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.