author:skate

time:2009/12/09





linux删除文件后没有释放空间


今天发现一台服务器的home空间满了,于是要清空无用的文件,当我删除文件后,发现可用空间没有变化


os:centos4.7

现象:


发现当前磁盘空间使用情况:


[root@ticketb ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda1             981M  203M  729M  22% /

none                   16G     0   16G   0% /dev/shm

/dev/sda9             2.9G   37M  2.7G   2% /tmp

/dev/sda7             4.9G  1.9G  2.7G  42% /usr

/dev/sda8             2.9G  145M  2.6G   6% /var

/dev/mapper/vghome-lvhome

                       20G   19G   11M 100% /home

/dev/mapper/vgoradata-lvoradata

                      144G   48G   90G  35% /u01/oradata

/dev/mapper/vgbackup-lvbackup

                      193G  7.8G  175G   5% /u01/backup

通过下面的命令找到无用的文件,然后删除

[root@ticketb ~]# find /home/oracle/admin/dbticb/udump/ -name "dbticb_*.trc" -mtime +50 | xargs rm -rf


然后在查看磁盘空间使用情况,发现没有/home空间没有变化


[root@ticketb ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda1             981M  203M  729M  22% /

none                   16G     0   16G   0% /dev/shm

/dev/sda9             2.9G   37M  2.7G   2% /tmp

/dev/sda7             4.9G  1.9G  2.7G  42% /usr

/dev/sda8             2.9G  145M  2.6G   6% /var

/dev/mapper/vghome-lvhome

                       20G   19G   11M 100% /home

/dev/mapper/vgoradata-lvoradata

                      144G   48G   90G  35% /u01/oradata

/dev/mapper/vgbackup-lvbackup

                      193G  7.8G  175G   5% /u01/backup


这个郁闷啊,明明删除文件了,怎么空间没有被释放啊,rm命令应该是直接删除啊,在查看下/home下还有什么占用空间


[root@ticketb ~]# du -h --max-depth=1  /home

16K     /home/lost+found

2.6G    /home/oracle

2.6G    /home


可这里显示空间已经释放了啊,于是google下,


未释放磁盘空间原因:


在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被

打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。而我删除的是oracle的告警log文件

删除的时候文件应该正在被使用


解决方法



略,看原贴。