我使用WinSCP将我的网站页面上传到远程的Ubuntu Linux服务器(VPS Xen主机)。 当我复制一个文件,它被写入大小为0的服务器。 当我检查了可用磁盘空间时: df -h我得到了:/ dev / xvda,Avail = 0%,Used = 100%我尝试用删除的文件检查: lsof | grep '(deleted)' lsof | grep '(deleted)'但是找不到lsof命令。 接下来我可以做什么?
我试过了:sudo du -h –max-depth = 1 ./然后迭代树,发现/srv/www/mysite.com/logs/access.log的大小为13G! 我用rm access.log删除了access.log。 但df -h钢报告/ dev / xvda 0%可用…我应该做其他什么最终删除文件?????
现在lsof应该报告已删除的文件。 您应该使用发送HUP信号到http服务器
/etc/init.d/apache2 reload
将来通过编辑/etc/logrotate.d/apache2来避免这种情况(input正确的日志path)
lsof命令看起来像只列出即将被删除的文件(因为它们正在使用中)。 也许lsof存在,但不在你的path – 尝试search它。
你可以:
/ dev / xvda是一个光盘path。 分区应该以一些数字结尾(例如/ dev / xvda1)。 如果是根目录或主分区,请在最后一列检查df。 “可用= 0%”告诉你可能用完了空闲空间。 检查什么是占用大量空间
du -sm <path>
对于你的主目录来说,
du -sm $HOME/*
您可以使用此命令找出哪个文件或目录正在使用大部分磁盘空间
du -hsx * | sort -rh | head -10
该命令在您将启动它的目录中工作。 它显示了10个最大的文件/导演。
在目录上使用它,你怀疑那里的文件是大的,即/ var / log /你的主目录。
如果你什么也找不到,那么你的硬盘有可能是错的。
更新:如果你有perl安装,你可以使用这一个class轮:
du -k | sort -n | perl -ne 'if ( /^(\d+)\s+(.*$)/){$l=log($1+.1);$m=int($l/log(1024)); printf ("%6.1f\t%s\t%25s %s\n",($1/(2**(10*$m))),(("K","M","G","T","P")[$m]),"*"x (1.5*$l),$2);}'