为啥在Linux上删除大容量文件后硬盘空间大小还不变???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥在Linux上删除大容量文件后硬盘空间大小还不变???相关的知识,希望对你有一定的参考价值。

我的Linux系统刚开始装起来后,占了4个G的硬盘空间(装在F盘上),后来在linux上装了个软件后,大概共占了8G的空间,后来又装了其他东西,现在大概达到了14G空间。我现在电影都没地方放了,所以想把linux上的东西删掉一些,好腾出空间。现在问题来了,删了几个大文件后,还是linux还是占了F盘14G空间,等于说没能腾出空间,有高手遇到过跟我一样的问题吗?请赐教!!!
用虚拟机装的linux,虚拟机装在D盘上,linux装在F盘上,高手们再看看怎么搞啊,我的悬赏分很高的哦

用虚拟机安装的LINUX,开始给LINUX分配空间的时候有两种可能:

1.固定大小,指的是你的虚拟机占用的WINDOWS文件系统的硬盘大小,也就是你F盘的空间。固定大小是指你在建立虚拟机时选择了立即分配空间,也就是把你设置的最大虚拟机磁盘空间给分配出来。如如果你选择这种方式,虚拟机(你装的LINUX的文件夹)的大小为4G,有两种情况:

(1)你使用了快照,快照是对系统的状态做个备份,但是和真的备份不同,备份是将系统复制了一份放在备份文件中,而快照是记录的你建立快照时的状态,然后随着你使用时间增加,快照文件的大小会增加,因为它记录了你建立快照之后系统的所有变化。所以如果你建立过快照,这个空间是会约占越多的。除非你删除快照,删除方法百度一下,要先删最近的好像,不然不能删。

(2)没有建立快照的话,你的虚拟机占用的空间永远不会改变,也就是永远4G。

2.可变大小。就是你没有选择立即分配,你的的空间随着你虚拟机里面的文件增多而增大,我估计你有可能是这种情况,就是你的虚拟机LINUX开始分配了4G,然后你往里面放了10G的东西,就变成了14G。而这些分配了的空间虚拟机又不会去释放它,所以虽然你的LINUX没有文件占用空间,但是虚拟机文件(就是你F盘的虚拟机LINUX的目录)不会变小。

要想释放这些文件,虚拟机好像是不能的。还有,在FAT32文件系统中,你的虚拟机文件会被分割成一个一个2G的文件,这种情况你看能不能删除后创建的几个,呵呵。
参考技术A 您好!

这样的情况是由于您的虚拟机并未将释放的系统资源还给真实电脑导致的。

2个简单的方法:

1 进入虚拟机安装系统生成的目录中(您的虚拟机LINUX系统装在F盘,所以默认情况下在F盘会有个MY virtual machine文件夹), 先将虚拟机LINUX系统的虚拟硬盘移除,然后再删除这个文件夹的虚拟硬盘文件即可。(文件类型为 vm ware virtual disk file)

2 如果 在安装了 虚拟LINUX 系统的 最开始 就有做 快照的话, 用快照还原到裸机状态,再关闭虚拟机,空间就回来了。

希望对您有帮助,如还有疑问,可以百度HI我。

以上。本回答被提问者采纳
参考技术B 1、这是因为delete命令在执行删除操作,但有其他进程仍然在占用此文件,用ps aux |grep delete 看一下
2、可以通过kill掉delete进程,来释放
3、 还要通过重启系统解决,当然,机器上跑着业务环境,一般不会这么做
参考技术C Linux系统怎么会有F盘呢,你是不是使用虚拟机安装的Linux系统啊。
vmware上的虚拟盘长期使用导致磁盘空间变大的话,删除虚拟机上的文件并不能解决物理磁盘空间不足的问题。如果是这种情况,可以运行vmware-toolbox进行空间回收。前提是安装了vmware-tools
参考技术D 你删除的可能只是一个 按装的配置文件 实际分配的硬盘空间 没有删除
你在找找一定行的

linux查看硬盘空间 文件大小

 

 

du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和

 

df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。

        当文件系统也确定删除了该文件后,这时候du与df就一致了。

 

 

常用命令:

du -sh [目录名]

du -sh /opt

  

du -ah /opt

 

输出当前目录下各个子目录所使用的空间 ,加上目录名,则输出指定目录下各个子目录所使用的空间

du -h  --max-depth=1

 

 

 

df -lh

  

 

说明:

-h更具目前磁盘空间和使用情况 以更易读的方式显示

-H根上面的-h参数相同,不过在根式化的时候,采用1000而不是1024进行容量转换

-k以单位显示磁盘的使用情况

-l显示本地的分区的磁盘空间使用率,如果服务器nfs了远程服务器的磁盘,那么在df上加上-l后系统显示的是过滤nsf驱动器后的结果

-i显示inode的使用情况。linux采用了类似指针的方式管理磁盘空间影射.这也是一个比较关键应用

 

 Linux下查看某一个进程所占用的内存,首先可以通过ps命令找到进程id

ps -ef | grep mongod

现在可以使用如下命令查看内存:

top -p 2607

这样可以动态实时的看到CPU和内存的占用率,然后按q键回到命令行

也可直接使用ps命令查看:

 ps -aux | grep mongod

 

第一个标注的地方是CPU和内存占用率,后面的 89736 是物理内存使用量,单位是k,此时 mongodb 大约占用87M内存

  还可以查看进程的status文件:

 

VmRSS对应的值就是物理内存占用,大约为87M和刚才一致

通过命令查看内存占用前10名的程序:

ps aux | sort -k4,4nr | head -n 10

 

 

1、cpu查看
    1)cpu个数:

cat /proc/cpuinfo | grep "physical id" | uniq | wc -l

     2)cpu核数:

cat /proc/cpuinfo | grep "cpu cores" | uniq

 

     3)cpu型号:

cat /proc/cpuinfo | grep \'model name\' |uniq

 

2、内存查看:

cat /proc/meminfo | grep MemTotal

 

3、硬盘查看:

 fdisk -l | grep Disk

 

下面是一些命令的集合,供参考:

uname -a # 查看内核/操作系统/CPU信息的linux系统信息
head -n l /etc/issue # 查看操作系统版本
cat /proc/cpuinfo # 查看CPU信息
hostname # 查看计算机名的linux系统信息命令
lspci -tv # 列出所有PCI设备 
lsusb -tv # 列出所有USB设备的linux系统信息命令
lsmod # 列出加载的内核模块 
env # 查看环境变量资源
free -m # 查看内存使用量和交换区使用量 
df -h # 查看各分区使用情况
du -sh # 查看指定目录的大小 
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量 
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载磁盘和分区 
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区 
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) 
dmesg | grep IDE # 查看启动时IDE设备检测状况网络
ifconfig # 查看所有网络接口的属性 
iptables -L # 查看防火墙设置
route -n # 查看路由表 
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接 
netstat -s # 查看网络统计信息进程
ps -ef # 查看所有进程 
top # 实时显示进程状态用户
w # 查看活动用户 
id # 查看指定用户信息
last # 查看用户登录日志 
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组 
crontab -l # 查看当前用户的计划任务服务
chkconfig –list # 列出所有系统服务 
chkconfig –list | grep on # 列出所有启动的系统服务程序
rpm -qa # 查看所有安装的软件包 
cat /proc/cpuinfo :查看CPU相关参数的linux系统命令
cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令 
cat /proc/meminfo :查看linux系统内存信息的linux系统命令
cat /proc/version :查看版本,类似uname -r 
cat /proc/ioports :查看设备io端口
cat /proc/interrupts :查看中断 
cat /proc/pci :查看pci设备的信息
cat /proc/swaps :查看所有swap分区的信息

 

 

 

CPU占用最多的前10个进程: 

ps auxw|head -1;ps auxw|sort -rn -k3|head -10

 
内存消耗最多的前10个进程 

ps auxw|head -1;ps auxw|sort -rn -k4|head -10 

 

虚拟内存使用最多的前10个进程 

ps auxw|head -1;ps auxw|sort -rn -k5|head -10

 

检查端口被哪个进程占用

netstat -lnp|grep 5000

 

 找到进程号:3579 占用 5000 端口

查看进程的详细信息:

ps 3579

 

 

杀掉进程:

kill -9 3579

 

以上是关于为啥在Linux上删除大容量文件后硬盘空间大小还不变???的主要内容,如果未能解决你的问题,请参考以下文章

linux下cat /dev/null > nohup.out命令把nohup.out文件清空,但是查硬盘容量是却毫无变化

linux 查看硬盘使用情况

为啥文件压缩后和原文件大小不一样

如何自动过滤大容量移动硬盘相同文件并删除;

Linux磁盘管理

查看磁盘空间命令