Я только что создал приложение с expressJs для учреждения, где они загружают видеоуроки. Сначала видео загружали на тот же сервер, но позже я переключился на Amazon. Я имею в виду, что только видео загружаются в Amazon. Теперь я получаю эту ошибку всякий раз, когда я пытаюсь загрузить ENOSPC, на устройстве нет места. Я очистил файл tmp без толку. Мне нужно сказать, что я много раз искал эту проблему, но ни один из d-решений, похоже, не работает для меня
ENOSPC на устройстве не осталось места -Nodejs
Ответ 1
Ну в моем случае. Фактически это произошло, когда файлы были загружены на веб-службу Amazon, я не удалял файлы из папки temp. Хорошо, что каждый разработчик знает, что при загрузке файлов на сервер они сначала хранятся в папке temp перед копированием в любую папку, в которой вы хотите (я знаю, для Nodejs и php); Поэтому попробуйте удалить временную папку и посмотреть ее. И убедитесь, что метод загрузки ur обрабатывает очистку вашей временной папки сразу после каждой загрузки
Ответ 2
У меня была такая же проблема, посмотрите на выбранный ответ в Stackoverflow здесь:
Вот команда, которую я использовал (моя ОС: LinuxMint 18.3 Sylvia, которая является системой Linux на базе Ubuntu/Debian).
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Ответ 3
В моем случае я получил ошибку "npm WARN tar ENOSPC: на устройстве не осталось места" во время работы nodeJS в докере, я просто использовал приведенную ниже команду для освобождения места.
sudo docker system prune -af
Ответ 4
Я получил эту ошибку, когда мой скрипт пытался создать новый файл. Может показаться, что у вас много места на диске, но если у вас есть миллионы крошечных файлов на диске, вы могли бы использовать все доступные inode. Запустите df -hi
чтобы увидеть, сколько df -hi
свободно.
Ответ 5
Вы можете установить новый лимит временно с помощью:
sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p
Если вы хотите сделать свой лимит постоянным, используйте:
echo fs.inotify.max_user_watches=524288 | sudo tee -a/etc/sysctl.conf
sudo sysctl -p
Ответ 6
Проблема была в том, что временная папка не очищалась после загрузки, поэтому все видео, которые были загружены до сих пор, все еще находились в папке temp, и память была исчерпана. Теперь папка temp была очищена, и теперь все работает нормально.
Ответ 7
Просто нужно очистить систему Docker, чтобы заняться ею. Работал на меня.
$ docker system prune