Недостаточно места на / tmp
Я не могу запустить менеджер обновлений, так как получаю сообщение об ошибке, говорящее о том, что в /tmp каталоге недостаточно свободного места . Я практически вычистил tmp каталог, но ошибка не исчезла.
Что, похоже, произошло:
Ваш / был полон, затем Ubuntu создал новый раздел в оперативной памяти для временного использования.
Теперь этот раздел размером 1 МБ недостаточно велик для работы.
Что мы можем сделать:
1) увеличить размер этого раздела только для обновления
2) фактически удалите достаточно файлов на HD, чтобы этот раздел больше не нужен.
Чтобы сделать 1:
открыть терминал и запустить
Это должно дать вам 1 МБ раздел (так же, как тот, который у вас был = P).
Теперь, чтобы увеличить размер, вы увеличиваете size в этой строке, так что, с size=10485760 , вы получите 10 МБ.
Ваша цель — найти число, достаточное для работы, но оставляющее достаточно оперативной памяти.
Чтобы сделать 2:
Откройте терминал и запустить sudo umount /tmp или, если это не удается, sudo umount -l /tmp .
Удалите файлы внутри /tmp ( теперь /tmp это фактически ваш HD, а не виртуальный RAM-диск), удалите неиспользуемые пакеты, удалите файлы в вашей домашней папке и так далее.
остановите или убейте процессы. Тогда размонтируйте / tmp. Также предлагается в Интернете sudo umount overflow .
Источник
Как безопасно очистить папку tmp в Linux
Я использую оперативную память для моих tmpfs /tmp, 2 ГБ, если быть точным. Обычно этого достаточно, но иногда процессы создают файлы там и не могут очистить после себя. Это может произойти, если они потерпят крах. Мне нужно удалить эти потерянные tmp файлы, иначе в будущем /tmp не хватит места.
Как я могу безопасно собрать мусор / TMP? Некоторые люди делают это, проверяя отметку времени последнего изменения, но этот подход небезопасен, поскольку могут существовать длительные процессы, которым все еще нужны эти файлы. Более безопасный подход — объединить условие отметки времени последней модификации с условием, что ни у одного процесса нет дескриптора файла для файла. Есть ли программа / скрипт / и т.д., которые воплощают этот подход или какой-то другой подход, который также безопасен?
Кстати, разрешает ли Linux/Unix режим открытия файла с созданием, при котором созданный файл удаляется при завершении процесса создания, даже если он произошел сбой?
7 ответов 7
Вы можете попробовать что-то вроде этого:
find /tmp -mtime +7 -and -not -exec fuser -s <> ‘;’ -and -exec echo <> ‘;’
find используется для поиска файлов, которые соответствуют определенным критериям.
- -mtime +7 выбирает только файлы старше 7 дней (вы можете использовать любое другое значение)
- -exec fuser -s <> ‘;’ вызывает fuser в режиме без вывода сообщений для каждого файла, который соответствует критериям устаревания. fuser возвращает 0 (= true) для каждого файла, к которому обращались в данный момент, и 1 (= false) для недоступных. Поскольку мы заинтересованы только в unaccessed те, мы ставим -not перед этим -exec
- -exec echo <> ‘;’ просто печатает все имена файлов, соответствующие критериям. Вы можете использовать -exec rm <> ‘;’ вместо этого здесь, но так как это может удалить некоторые все еще используемые файлы, я думаю, что безопаснее сначала сделать простое эхо.
- edit: вы можете захотеть добавить что-то вроде -name ‘foo*.bar’ или -uid 123 чтобы ограничить эффекты очистки конкретными шаблонами файлов или идентификаторами пользователей, чтобы избежать случайных эффектов.
К последнему пункту: Учтите, что могут быть файлы, которые записываются только один раз (например, при загрузке системы), но часто читаются (например, любой файл X-session-cookie). Поэтому я рекомендую добавить некоторые проверки имен, чтобы они влияли только на файлы, созданные неисправными программами.
edit2: К вашему последнему вопросу: файл не будет удален с диска, пока ни у какого процесса не будет открытого дескриптора к нему (по крайней мере, для родных файловых систем linux). Проблема заключается в том, что запись в каталоге удаляется немедленно, а это означает, что с момента удаления файла новые процессы больше не смогут его открыть (поскольку к нему не прикреплено имя файла).
edit3: Но что, если я хотел бы автоматизировать весь процесс?
Как я уже сказал, могут быть файлы, которые записываются один раз, а затем читаются время от времени (например, файлы cookie сеанса X, файлы PID и т.д.). Они не будут исключены этим небольшим скриптом удаления (по этой причине вам может понадобиться выполнить тестовый прогон с echo прежде чем фактически удалять файлы).
Одним из способов реализации безопасного решения является использование atime .
atime хранит время последнего доступа к каждому файлу. Но эта опция файловой системы часто отключена, потому что она имеет некоторое влияние на производительность (согласно этому блогу где-то в 20-30% регионе). Есть относительное relatime , но оно записывает время доступа только в том случае, если mtime изменилось, так что этот нам не поможет.
Если вы хотите использовать atime , я бы порекомендовал иметь /tmp на отдельном разделе (в идеале, на виртуальном диске), чтобы влияние на производительность системы не было слишком большим.
После включения atime все, что вам нужно сделать, это заменить параметр -mtime в приведенной выше командной строке на -atime .
Вы можете удалить -not -exec fuser -s <> ‘;’ , но я бы оставил его там просто для уверенности (в случае, если приложения сохраняют файлы открытыми в течение длительного периода времени).
Но имейте в виду, что нужно проверить команду с помощью echo прежде чем вы удалите все, что нужно вашей системе!
Источник
Недостаточно места на / tmp
Если вы не загружаетесь с раздела (возможно ли это без использования wubi?), и он по крайней мере наполовину свободен, просто используйте gparted (вставьте apt: gparted в firefox).
Запустите его из меню. Узнайте название своего раздела, используя fdisk -l в терминале. Раздел назвал что-то вроде / dev / sda * где * — число. Или просмотрите список в верхнем правом углу gparted. Измените размер раздела fat32 на меньшую половину его первоначального размера. Создайте новый раздел ext *. Переместите все файлы в раздел ext. Удалите старый и измените размер раздела ext.
Обратите внимание, что я делал это несколько раз, и он всегда работал так, как предполагалось. ОДНАКО есть много сообщений о людях, которые потеряли данные таким образом. В зависимости от объема данных вы можете использовать Ubuntu One или Dropbox для резервного копирования ваших вещей. Оба они предлагают 2 ГБ, что, скорее всего, недостаточно.
6 ответов
Что, кажется, произошло:
Ваш / был заполнен, затем был создан Ubuntu новый раздел в ОЗУ для временного использования.
Теперь этот раздел размером 1 МБ тоже недостаточно велик для работы.
Что мы можем сделать:
1) увеличьте размер этого раздела только для обновления
2) фактически удалите достаточно файлов на жестком диске, так что этот раздел больше не нужен.
Для выполнения 1:
откройте терминал и run
Это должно дать вам раздел размером 1 МБ (как и тот, который у вас был = P).
Теперь, чтобы увеличить размер, вы увеличиваете размер в этой строке, так что с size = 10485760 , вы получите 10 МБ.
Ваша цель — найти число, которое достаточно для работы, но при этом оставит достаточно оперативной памяти
Комментарии к 1
Вы можете хотите попробовать sudo umount -l / tmp , если вы получите какой-то вариант «файловая система занята и не может быть размонтирована»
Другое возможное решение «файловая система занята (. ) «необходимо выполнить fuser -m / tmp , чтобы найти pid (номера процессов), которые используют / tmp, затем ps -elf
, остановить или убить процессы
Вы можете попробовать sudo mount -t tmpfs -o size = 1MB, mode = 1777 overflow / tmp [11806 83] или даже sudo mount -t tmpfs -o size = 1G, mode = 1777 overflow / tmp (для 1 мегабайта или 1 гигабайта, соответственно) — то есть доступны единицы, так что вам не нужно введите огромное число
Чтобы сделать 2:
Откройте терминал и запустите sudo umount / tmp или, если это не удается, sudo umount -l /tmp[1180691 sizes.[12144) ] Тогда уберись!
Удалите файлы в / tmp ( сейчас / tmp — это то, что находится на вашем HD, а не виртуальный RAM-диск), удалите неиспользуемые пакеты, удалите файлы в ваша домашняя папка и т. д.
Источник
Ошибка с занятым местом в корне /
Задан список участников соревнований по плаванию и их результаты. Расположите результаты и фамилии участников в соответствии с занятым местом
Задан список участников соревнований по плаванию и их результаты. Расположите результаты и фамилии.
База данных, связанная с местом отправления и местом прибытия
В общем нужно создать базу данных аэропорта, но есть проблема, связанная с аэропортом отправления и.
Определить кратчайшее расстояние между местом бросания и местом нахождения тела спустя 3 с после бросания
Привет ребят. Не могу решить задачку по физике (возможно я неправильно понимаю условие). Итак.
PHP ищет файлы не в корне сайта, а в корне файловой системы
Всем привет! Пытаюсь настроить локальный сервер на Mac OS X 10.9.5 и не могу понять PHP ищет.
Решение
Вероятнее всего, именно в /tmp и закончилось свободное пространство.
Это произошло потому, что при нахождении всех системных директорий на одном разделе HDD, выделение нужного директориям пространства происходит динамически — «сколько нужно — столько и получи, лишнее — верни обратно», а вот при ручном вынесении конкретных директорий на другие разделы HDD пространство им из рутового раздела не выделяется — «сколько выделено пользователем — столько и имеешь».
Ручная разбивка иногда бывает полезна и нужна — в сложных случаях многодисковых кластеров из маленьких объёмов, в сложных случаях конфигураций пространства HDD из-за траблов с чтением данных на определённых участках диска и т.п. Но вышеприведённые траблы обычно решаются переносом всего на новый больший по объёму HDD — разметка делается с нуля, сообразно текущим нуждам с перспективой расширения.
Изначально возможность разнести систему по разным HDD была как раз задумана и востребована в силу маленьких объёмов существовавших тогда драйвов. Да были времена, когда мне друг и мой негласный гуру сказал про 40Гб диск — «У-у! Это огромнейшее пространство!»
При сегодняшних объёмах, занимаемых системой ей вполне достаточно выделить под рут гигов 15 — 20 и не задумываться — система будет сама этим пространством вполне рационально распоряжаться.
Если и выносить с рута на другой раздел какие-либо системные директории, то, кроме. разумеется /home (который, как я подразумеваю, у нас и так вынесен), можно вынести /usr/games (если вы любитель погамать) и вообще /usr (если у вас много юзеров, работающих в системе по сети с тонких клиентов или вы устанавливаете ну очень много, просто огромное количество приложений пользовательского уровня).
Типичный пример: вы хостите собственный WWW-ресурс в локалку — веб-интерфейс большого FTP-сервера. В этом случае вам лучше иметь хостовую систему на одном HDD, а весь сайт со всем его содержимым и медиаданные FTP — на другом. Для этого просто вынесем на второй HDD директорию /var/www и всё! Apache и SAMBA в системе настраиваются штатно — для них вся эта чехарда абсолютно прозрачна. В итоге: корень системы и несколько юзеров-админов на одном винте, а всё остальное расшаренное — на другом!
В остальных случаях этого делать не нужно.
В данный момент у вас наблюдается трабла — переполняется пространство на вынесенном разделе, когда на корневом его свободного завались.
Самое логичное будет перенести директорию с вынесенного раздела на корневой. Чем мы и займёмся.
Для этого нам лучше всего ребутнуться в init 1, или, по крайней мере, отключить сеть — чтобы в ту директорию (/tmp) у нас ничего не писалось помимо наших действий.
Прикол сей директории в том, что в неё и писать и читать имеет право всякий таракан, в отличие от других системных директорий, где право записи имеет только рут.
Мы же все действия будем делать из рута — в init 1 только в него попасть и можно
Источник
Как увеличить размер / tmp? [dубликат]
Я не могу запустить диспетчер обновлений, так как я получаю сообщение об ошибке, что свободного места в каталоге /tmp недостаточно. Я практически очистил каталог tmp, но ошибка сохраняется.
/dev/loop0 13G 11G 952M 92% / udev 2.0G 4.0K 2.0G 1% /dev tmpfs 785M 920K 784M 1% /run none 5.0M 0 5.0M 0% /run/lock none 2.0G 584K 2.0G 1% /run/shm /dev/sda6 20G 14G 6.4G 68% /host overflow 1.0M 16K 1008K 2% /tmp
10 ответов
Я знаю об этой проблеме на моем Kubuntu 16.04, и user63070 показывает лучший ответ. Измените размер на / etc / fstab следующим образом:
tmpfs /tmp tmpfs defaults,size=10G,mode=1777 0 0
Перезагрузитесь, и вы получили 10 ГБ для своей папки / tmp.
Откройте файл / etc / mtab в своем любимом текстовом редакторе с правами root (например, «sudo vim / etc / mtab»). И увеличьте память, выделенную вашей папке / tmp. После перезапуска Ubuntu увеличит пространство до / tmp и устранит эту проблему.
Похоже, ваш / раздел заполнен.
Если у вас есть место на других разделах на вашем диске, вы можете использовать это пространство для увеличения размера вашего / раздела. Для этого доступны инструменты, например gparted.
sudo apt-get install gparted
изменяет размер tmpfs без необходимости размонтировать раздел и, следовательно, не беспокоить запущенные приложения.
Я уверен, что @ user220420 ссылался на / etc / fstab вместо / etc / mtab. У меня было много свободного GB в моем корне, однако Firefox не разрешил мне скачивать что-либо из Интернета. Небольшое окно всплыло перед тем, как закончить любую загрузку, сообщив / tmp не хватило места. Внутри fstab есть такая строка, где вы можете увеличить размер папки tmp. Он был установлен на 100M, поэтому я изменил его на 1000M. После перезагрузки я нажал правой кнопкой мыши на / tmp (в корневом каталоге), и свойства показали 1 ГБ бесплатно (чтобы убедиться, что изменения были применены правильно). Вот и все.
Я знаю об этой проблеме на моем Kubuntu 16.04, и user63070 показывает лучший ответ. Измените размер на / etc / fstab следующим образом:
tmpfs /tmp tmpfs defaults,size=10G,mode=1777 0 0
Перезагрузитесь, и вы получили 10 ГБ для своей папки / tmp.
Откройте файл / etc / mtab в своем любимом текстовом редакторе с правами root (например, «sudo vim / etc / mtab»). И увеличьте память, выделенную вашей папке / tmp. После перезапуска Ubuntu увеличит пространство до / tmp и устранит эту проблему.
Похоже, ваш / раздел заполнен.
Если у вас есть место на других разделах на вашем диске, вы можете использовать это пространство для увеличения размера вашего / раздела. Для этого доступны инструменты, например gparted.
sudo apt-get install gparted
, остановить или убить процессы. Затем umount / tmp. Также предлагается в Интернете sudo umount overflow. – gaoithe 9 May 2014 в 20:10
Источник