Перейти к содержимому

Tmp linux что это

  • автор:

Планирование диска

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

Надёжность хранения данных и эффективность доступа к ним возрастает, если разделять данные разных типов (различающиеся по характеру использования). Для этого всё доступное пространство на жёстком диске (или дисках) разделяется на независимые области, каждая из которых предназначена для данных определённого типа. Для организации таких областей хорошо подходит технология разделения диска на разделы.

Поскольку разделы не зависят друг от друга, изменение содержимого одного раздела никак не сказывается на других. Одна из выгод такого подхода: в случае физического сбоя повреждения данных будут локализованы внутри того раздела, где произошёл сбой, и не затронут других разделов. Разделы открывают также путь для оптимизации скорости доступа: скорость чтения и записи для большинства дисков выше в середине и ниже к концу и началу диска. В самой быстрой области можно расположить раздел с данными, для которых важна скорость доступа.

Разделение диска на разделы необходимо в том случае, если на одном физическом устройстве должны быть установлены несколько операционных систем. Каждой операционной системе потребуется выделить не менее одного раздела.

Необходимые разделы

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

Область подкачки (swap space) — это пространство на диске, используемое системой для организации виртуальной памяти. Если какая-то область оперативной памяти долгое время не используется, её содержимое записывается на диск, в область подкачки — тем самым освобождается место в физической памяти для других процессов. Когда же эта область памяти потребуется вновь, ядро подкачает её с диска и разместит в оперативной памяти.

Благодаря этому вполне может сложиться ситуация, когда используется больше оперативной памяти, чем её есть в действительности: если не вся заказанная память используется одновременно, что позволяет системе откачивать некоторые области. В Linux принято размещать область подкачки на отдельном разделе, что позволяет увеличить скорость доступа к данным и уменьшить риск повреждения ценных данных на основных разделах.

Для обеспечения максимальной скорости доступа к данным области подкачки ее раздел рекомендуется размещать в начале либо в середине диска. Данные, находящиеся в swap, являются временными и не представляют ценности после перезагрузки компьютера. Поэтому размещение swap-раздела, как и других разделов с неуникальными данными (например, /tmp и /usr — о них расказано ниже), в начале диска предпочтительнее: снижается риск потери важных данных.

Начало диска более подвержено повреждениям в том числе и из-за человеческого фактора. Печально известным примером опечатки, которая ведет к уничтожению данных в начале диска, может послужить dd of=/dev/hda вместо dd of=/dev/hda3 . Однако если в начале диска хранятся неуникальные данные, то этот процесс, будучи вовремя остановленным, не успеет добраться до действительно ценной информации в разделах /etc , /home или /var , в то время как восстановление таблицы разделов — задача несложная.

С корневой файловой системы начинает расти всё дерево файлов Linux. Точкой монтирования для корневой файловой системы служит “ / ” — корневой каталог. Можно поместить все данные (включая пользовательские файлы) на один раздел — это как раз тот случай, когда для Linux потребуется всего два раздела. Для повышения эффективности и надёжности некоторые ветви дерева файлов можно выносить на другие разделы. Поскольку для файловой системы Linux не важно, каким образом части дерева каталогов расположены на разделах дисков, у вас есть возможность использовать каждый из имеющихся разделов диска под любой каталог файловой системы. В этом случае раздел с корневым каталогом будет служить точкой монтирования для остальных файловых систем.

Смонтированной файловой системе важно указать правильные параметры монтирования. Задавая разделам с разными типами данных походящие параметры, можно добиться значительного повышения производительности и безопаснсти. Ниже перечислены наиболее часто используемые общие параметры монтирования.

noatime При каждом доступе к файлу, в том числе при чтении, обновляется время последнего доступа к нему. При использлвании этого параметра это обновление производиться не будет, что может быть полезно для ускорения работы (особенно актуально для серверов). nodev Этот параметр не позволяет создавать на файловой системе файлы-устройства. Если точно известно, что на данной файовой системе файлы-устройства не нужны, можно использовать этот параметр для повышения безопасности. nosuid Параметр запрещает исполнение SUID-программ. noexec Запрещает запуск исполняемых программ из файлов на данной файловой системе. ro Обеспечивает доступ к файловой системе только для чтения.

Дополнительно выделяемые разделы

/home Домашние каталоги пользователей. Здесь хранятся персональные каталоги всех пользователей машины. Размер каталога зависит от количества работающих пользователей и от их потребностей. Рекомендуемые файловые системы — Ext3 или XFS. Параметры — noexec (в случае невозможности применения — nosuid ). /usr Статические данные: большая часть пакетов устанавливает свои исполняемые файлы и данные в каталог /usr . Преимуществом размещения этого каталога в отдельном разделе является то, что при нормальной работе (кроме установки/удаления пакетов) не требуется в него записывать никаких данных, поэтому этот раздел можно монтировать в режиме «только чтение», в том числе по локальной сети. В этом случае несколько машин могут пользоваться одним сетевым разделом /usr . Размер этого раздела зависит от количества пакетов, которые будут установлены, он колеблется в пределах от 500 Мб для маленькой установки до нескольких гигабайт для полной установки. Вариант на 2–3 Гб (в зависимости от размера диска) скорее всего подойдёт. /var Переменные данные, которые создаются системой в процессе работы. Запись в этот каталог осуществляется весьма часто, а количество данных в нём имеет тенденцию расти (здесь расположены все системные журналы). Требования к объёму очень сильно зависят от профиля машины. На пользовательских домашних станциях будет вполне достаточно нескольких сотен мегабайт. Для серверов эта цифра будет существенно больше, поэтому для повышения производительности и надежности хранения информации переменные данные разных типов рекомендуеся располагать на разных разделах. Файловая система этого раздела должна поддерживать журналирование (Ext3). При монтировании желательно задать параметры noexec и nosuid . /var/log При установке на сервер лучшим решением будет вынести системные журналы на отдельный раздел. При сбоях или внешних атаках размер журналов может резко увеличиваться, что, в случае их хранения вместе с другими переменными системными данными, чревато сбоем в работе системы. Также, если сервер используется для выполнения узкого круга задач (например, как web-сервер), рекомендуется выносить на отдельный раздел журналы основной системной службы (например, /var/log/apache ). Оптимальная файловая система — Ext3, параметры — noatime , noexec , nosuid . /var/tmp Может быть полезным создать отдельную файловую систему для временных данных, которые нежелательно потерять в случае программного или аппаратного сбоя. Этот раздел должен обеспечивать высокую надежность хранения данных, поэтому оптимально создать в нем файловую систему с поддержкой журнализации (Ext3), указав параметры noexec и nodev . /var/spool/mail Если на сервере хранится почта пользователей, каталог с ней необходимо выделить в отдельный раздел. Также обязательно устаналивать ограничения на использование дискового пространства для отдельных пользователей, чтобы избежать неожиданного переполнения раздела и проблем с работоспособностью сервера. /var/www Раздел для сайтов пользователей. /tmp Этот каталог предназначен для временных файлов: в таких файлах программы хранят промежуточные данные, необходимые для работы. После завершения работы программы временные файлы теряют смысл и должны быть удалены. Обычно каталог /tmp очищается при каждой загрузке системы. Поскольку запись в этот каталог осуществляется очень часто, а требования к надёжности очень низкие, то есть большой смысл выделить /tmp в отдельный раздел. В противном случае он окажется частью раздела “ / ”, требования к которому по записи и надёжности прямо противоположные (см. ниже). Размер раздела /tmp в обычном случае должен быть примерно равен размеру swap . В последнее время раздел /tmp зачастую размещают в виртуальной файловой системе tmpfs непосредственно в оперативной памяти. / Корневой раздел — это самый важный раздел. Он не только содержит наиболее важные данные и программы системы, но будет также служить точкой монтирования для других разделов. Если /usr , /var и /home вынесены на отдельные разделы, то потребность в объёме корневого раздела небольшая, обычно достаточно 500 Мб. Требования: корневой раздел должен быть доступен в процессе загрузки, в процессе работы доступ на запись в этот раздел требуется нечасто, но весьма важна надёжность. /boot Небольшой раздел (5–10 Мб), на котром хранятся исполняемые и failsafe ядра и данные используемого загрузчика. Обычно располагается в самом начале жесткого диска и всегда является первичным разделом (в отличие от логических томов в случае использования LVM). Оптимальная файловая система — Ext2, поскольку запись в раздел производится редко, а его объем мал.

Выделение вышеперечисленных разделов направлено прежде всего на повышение эффективности работы сервера. Для домашних рабочих станций чаще всего вполне достаточно, помимо необходимых разделов, выделить всго один — для хранения пользовательских данных ( /home ). Увеличения гибкости управления разделами, особенно при большом их количестве, можно добиться использованием технологии LVM, которая позволяет создавать, удалять и изменять размер логических устройств без риска потери данных.

Каталог /tmp в Linux: что вам следует знать

Если вы какое-то время используете Linux, вы наверняка сталкивались с каталогом /tmp .

Возможно, вы имеете некоторое представление об этом, но, вероятно, не уделили этому достаточно внимания.

Также есть каталог /var/tmp, который звучит похоже.

Итак, в этой статье я расскажу вам о некоторых важных вещах, которые вам нужно знать о каталоге /tmp . Я также расскажу, чем он отличается от каталога /var/tmp.

Что такое каталог /tmp в Linux?

Как следует из названия, каталог tmp (временный) под корнем используется для хранения данных, используемых системой и пользовательскими приложениями, для хранения данных, которые необходимы в течение короткого периода времени. Большинство дистрибутивов Linux предварительно настроены на очистку каталога tmp после каждой перезагрузки.

Звучит сложно? Позволь мне привести пример.

Итак, предположим, что вы устанавливаете программное обеспечение в своей системе, поэтому установщик может сохранить некоторые файлы, необходимые во время установки.

Аналогично, во время работы над проектом ваша система может сохранять файлы в каталоге tmp при внесении изменений или они также могут быть автоматически сохраненными версиями этого файла.

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

Являются ли /tmp и /var/tmp одинаковыми? Нет!

Да, существует значительная разница между каталогом /tmp и /var/tmp .

Краткий ответ: как они оба обращаются с временными файлами.

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

Хотите больше подробностей? Вот оно!

  • Надежность: Как правило, файлы, хранящиеся в каталоге /tmp , удаляются во время загрузки, тогда как файлы внутри /var/tmp сохраняются даже после перезагрузки.
  • Для пользователя VS в масштабе всей системы: Обычно файлы внутри каталога /tmp доступны каждому пользователю, тогда как файлы /var/tmp доступны каждому пользователю. в основном зависит от пользователя.
  • Использование (самое важное отличие): Каталог /tmp используется для хранения файлов, которые необходимы на короткое время, например, для установки пакета. В то время как каталог /var/tmp используется для файлов, которые необходимы в течение более длительного периода времени, таких как файлы резервного копирования системы или файлы журналов.

Автоматическая очистка каталога tmp

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

Если это так, то зачем вам явно очищать каталог /tmp? Потому что вы не перезагружаете свой сервер каждый день, как настольный компьютер. Я имею в виду проверку работоспособности вашего сервера; он может работать неделями, если не месяцами и годами.

Это нужно не всем. Только если на вашем сервере недостаточно места на диске, примените дополнительные усилия по автоматической очистке каталога tmp.

Чтобы автоматизировать очистку каталога tmp, наиболее важно определить, что следует удалить в первую очередь.

Так что лучший вариант — удалить файлы, которые не используются последние три дня и не принадлежат root.

И для этой цели вы можете использовать команду find следующим образом:

sudo find /tmp -type f \( ! -user root \) -atime +3 -delete

Но это не автоматизирует процесс.

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

Сначала откройте корневой файл crontab, используя следующее:

sudo crontab -e

Если вы используете кукурузную таблицу впервые, вам будет предложено выбрать предпочитаемый текстовый редактор. Я рекомендую использовать nano:

После этого перейдите в конец файла в nano, используя Alt + / , и вставьте в файл следующую строку:

0 0 * * * sudo find /tmp -type f ! -user root -atime +3 -delete

Сохраняем изменения и все!

Знали ли вы о черной дыре файловой системы Linux?

Я говорю о каталоге /dev/null , поскольку все, что туда отправляется, невозможно отследить! Хотите знать, как его можно использовать? Здесь у вас есть подробное руководство:

Я надеюсь, что это руководство окажется для вас полезным. А если у вас есть какие-либо вопросы или предложения, оставьте комментарий.

Все права защищены. © Linux-Console.net • 2019-2023

Всё, что вам нужно знать о каталоге /tmp в Linux

Я понял, что не уделял должного внимания каталогу /tmp или /var/tmp , пока не прочитал статью, которую увидел в Интернете. Поэтому я подготовил эту статью, надеюсь она будет полезной.

Что такое каталог Linux /tmp?

Каталоги.

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

В чем разница между каталогом /tmp и каталогом /var/tmp?

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

По умолчанию все файлы и данные хранящиеся в каталоге /var/tmp хранятся до 30 дней. Данные в /tmp автоматически удаляются через десять дней (пока система перезагружается).

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

Может ли каталог /tmp заполниться?

Файлы и данные хранящиеся в каталоге /tmp имеют размер всего несколько КБ. Так что заполнение каталога /tmp возможно, но сложно.

В среднем системе для заполнения каталога /tmp в нём должны быть миллионы временных файлов. Не о чем беспокоиться в домашней системе, которая часто выключается, поскольку при перезагрузке удаляются все файлы хранящиеся в каталоге /tmp .

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

Как удалить файлы хранящиеся в каталоге /tmp?

Не рекомендуется удалять файлы в каталоге /tmp , если вы не уверены, что делаете. Они важны и необходимы для программного обеспечения работающего в вашей системе. Их удаление может привести к сбою системы. Вам не нужно сильно беспокоиться, так как файлы и данные хранящиеся в каталоге /tmp автоматически удаляются при перезагрузке системы.

Однако для серверов, которые работают в течение нескольких месяцев важно время от времени очищать каталог /tmp , прежде чем каталог переполнится.

Я случайно удалил каталог /tmp, что мне теперь делать?

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

Все, что вам нужно сделать, это ввести следующие команды в свой терминал:

$ sudo mkdir /tmp
$ sudo chmod 1777 /tmp

Первая строка создает новый каталог /tmp . Вторая строка позволяет всем пользователям читать, записывать и выполнять файлы в каталоге /tmp .

Убедившись, что все в порядке необходимо перезагрузить систему. Это позволит программам начать использовать только что созданный каталог /tmp .

Временная папка tmp Linux

В какой переменной окружения Linux хранит путь к папке temp\tmp? Мне нужно программно найти путь к этой папке. Программа на C++.

Отслеживать
задан 9 ноя 2016 в 12:38
253 5 5 серебряных знаков 15 15 бронзовых знаков
Не факт что вообще в какой-то. У меня, например, под Mint и Debian такой переменной нет.
9 ноя 2016 в 12:41

Уточните, вам нужно именно узнать путь к папке temp в системе (в таком случае, вам нужно указать, по каким критериям искать — например, эта папка должна быть указана в какой-то переменной), или программно создать временный файл в папке, предназначенной для временных файлов, и в которой этот файл гарантированно создастся? ИМХО, от этого будет зависеть, какой ответ получите.

9 ноя 2016 в 13:02
если память не изменяет то команда set вам все покажет
9 ноя 2016 в 14:05

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

согласно стандарту posix каталогом для хранения временных файлов является каталог /tmp .

но, т.к. вы спрашиваете конкретно про операционную систему gnu/linux, то здесь применим стандарт fhs, согласно которому местом для сохранения временных файлов является не только каталог /tmp , но и каталог /var/tmp . разница между ними в том, что первый обычно (но не обязательно) очищается при загрузке операционной системы.

а т.к. вы уточняете ещё и про c++, то вышеописанной информацией можно пренебречь ввиду наличия определённой стандартом posix функции tmpfile() и её c++-аналога std::tmpfile().

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *