我刚刚为一个上传视频教程的机构用expressJs构建了一个应用程序。起初视频正在上传到同一台服务器,但后来我切换到亚马逊。我的意思是只有视频被上传到亚马逊。现在,每当我尝试上传ENOSPC时,我都会收到此错误。我已经清除了tmp文件无济于事。我需要说我已经广泛搜索过这个问题但是d解决方案似乎都不适用于我
答案 0 :(得分:31)
我遇到了同样的问题,请在这里查看Stackoverflow中的选定答案:
这是我使用的命令(我的操作系统:LinuxMint 18.3 Sylvia,它是基于Ubuntu / Debian的Linux系统)。
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
答案 1 :(得分:3)
只需清理Docker系统即可解决它。为我工作。
$ docker system prune
答案 2 :(得分:1)
在我自己的情况下。实际发生的是文件上传到Amazon Web服务上时,我没有从temp文件夹中删除文件。每个开发人员都知道,将文件上传到服务器时,它们最初存储在temp文件夹中,然后再复制到您想要的任何文件夹中(我知道Nodejs和php);因此,尝试删除您的temp文件夹并查看。并且确保您的上传方法在每次上传后都能立即清除您的temp文件夹
答案 3 :(得分:1)
我的脚本尝试创建新文件时出现此错误。看起来磁盘上有很多空间,但是如果磁盘上有数百万个小文件,那么您可能已经用尽了所有可用的索引节点。运行df -hi
以查看有多少可用的inode。
答案 4 :(得分:1)
您可以使用以下方法临时设置新的限制:
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
答案 5 :(得分:0)
在我的情况下,在docker中运行nodeJS时出现错误“ npm WARN tar ENOSPC:设备上没有剩余空间”,我只是使用以下命令回收空间。
garage <- lapply( 1:5, function(v1) {
matrix( rnorm(v1^2, 10, 3), v1, v1)
} )
names(garage) <- sprintf("cart_%d", 1:5)
garage[["cart_3"]]
tmpvar <- "cart_5"
garage[[tmpvar]]
sapply(garage, det)
rm(garage)
答案 6 :(得分:0)
我遇到过类似的情况,其中磁盘可用,但系统无法创建新文件。我永远使用我的节点应用程序。永远需要打开一个文件来跟踪其运行的节点进程。
如果您的系统上有可用的可用存储空间,但是不断收到错误消息,例如“设备上没有剩余空间”;您可能会遇到inode表中没有足够空间的问题。
使用df -i给出IUser%这样的 文件系统索引节点IUse IFree IUse%Mounted on udev 992637 537 992100 1%/ dev tmpfs 998601 1023 997578 1%/运行
如果您的IUser%达到100%,则意味着您的inode表已用尽
识别系统中的虚拟文件或不必要的文件并将其删除
答案 7 :(得分:0)
答案 8 :(得分:0)
先前的答案在短时间内解决了我的问题。
我必须找到未被使用的大文件并正在填充磁盘。
在运行的主机上:df
我知道了,我的问题是:/ dev / nvme0n1p3
Filesystem 1K-blocks Used Available Use% Mounted on
udev 32790508 0 32790508 0% /dev
tmpfs 6563764 239412 6324352 4% /run
/dev/nvme0n1p3 978611404 928877724 0 100% /
tmpfs 32818816 196812 32622004 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 32818816 0 32818816 0% /sys/fs/cgroup
/dev/nvme0n1p1 610304 28728 581576 5% /boot/efi
tmpfs 6563764 44 6563720 1% /run/user/1000
我安装了ncdu并在根目录下运行它,您可能需要手动删除一个小文件来为ncdu腾出空间,如果无法这样做,则可以使用df
手动查找这些文件:>
sudo apt-get install ncdu
sudo ncdu /
可以帮助我识别文件,在我的情况下,这些文件位于/ tmp文件夹中,然后我使用此命令删除了最近10天未使用的文件: 使用此应用程序,我可以识别大文件并删除tmp文件:(Sep-4 12:26)
sudo find /tmp -type f -atime +10 -delete
答案 9 :(得分:0)
我很努力地解决了这个问题,有一段时间,下面的命令奏效了。
docker 系统修剪
但后来我检查了音量,它已满。我检查了才知道node_modules成了真正的麻烦。
所以,我删除了 node_modules,再次运行 NPM 安装,它的效果非常好。
注意:- 这对我适用于 NODEJS 和 REACTJS 项目。
答案 10 :(得分:0)
我遇到了同样的问题,如果您还没有清理垃圾,请为我工作:
(我从论坛搜索的命令,所以在你决定使用它之前先阅读它,我是一个初学者,只是复制它,我不知道它的全部作用)
$ rm -rf ~/.local/share/Trash/*
命令来自这个论坛:
https://askubuntu.com/questions/468721/how-can-i-empty-the-trash-using-terminal
答案 11 :(得分:0)
就我而言,Linux ext4 文件系统,应启用 large_dir 功能。
// check if it's enabled
sudo tune2fs -l /dev/sdc | grep large_dir
// enable it
sudo tune2fs -O large_dir /dev/sda
在 Ubuntu 上,除非启用 large_dir,否则默认情况下 ext4 FS 对单个目录中的文件数有 64M 的限制。