歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

Hp unix rm文件空間不釋放問題解決


1 引言
很多人會遇到在操作系統上rm掉一個大的文件,以解決文件系統超標的問題,可是有的時侯文件刪除掉了,而空間卻未釋放出來。論壇上也常常見這樣貼子,為什麼會這樣,如何解決呢?本文只局限於Hp unix的操作系統。
2 rm掉文件空間不釋放原因
原因其實很簡單,主要是因為被刪除的文件在刪除的時侯還是進程在操作(打開、訪問等)的緣故,rm只完成了在磁盤上文件實體的釋放,而類似free list結構中相應的文件系統因進程的操作相應的inode並未釋放。
3 解決的方法
這樣的問題解決起來也很簡單,找到操作的進程,kill掉就可以了,可是找到操作的進程恰恰是本問題的難點和關鍵。這樣的問題也可以通過重啟機器和nmount/mount文件系統這樣的方式解決,但這樣的方法我是不提倡的,小小的問題就重啟機器,小題大做。
3.1 hp-unix操作系統
需要借助uli這個內部工具,後面會詳細說。
3.2 linux及solaris
可以這樣做:
a、下載一個lsof軟件裝上,google上可以搜到
b、找到正在用被刪文件的進程
lsof | grep deleted
c、kill掉相應的進程空間就釋放了
4 hp unix本問題的解決
4.1 問題重現
4.1.1 bdf一下/oracle文件系統
# bdf /oracle
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lv_oracle
8192000 5313813 2698313 66% /oracle
可見空余2698313kb
4.1.2 udump下有一文件占用了60多mb的空間
# pwd
/oracle/app/oracle/admin/yztest/udump
#
# ls -l yztest_ora_11026.trc
-rw-rw-rw- 1 root sys 62217530 Apr 23 10:36 yztest_ora_11026.trc
#
4.1.3 以more命令查看文件,保持這個操作不動
# more yztest_ora_11026.trc
4.1.4 另開一個窗口,刪除文件,空間未釋放
# rm yztest_ora_11026.trc
#
# ls -l yztest_ora_11026.trc
yztest_ora_11026.trc not found
#
# bdf /oracle
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lv_oracle
8192000 5313813 2698313 66% /oracle
可見/oracle文件系統的可用空間並未發生改變。
4.2 問題解決
4.2.1 安裝uli工具
這個工具如果沒有,可以向hp supporter要一個。
ftp到主機,注意用以二進制上傳
# ls -l
total 960
-rw-rw-rw- 1 root sys 487379 Apr 23 10:22 uli.bin
解壓縮,文件是自解壓的
# sh ./uli.bin
Running install script. ./uli.install uli a 2
查看一下
# ls -l
total 5520
-rwxrwxrwx 2 222 users 1160136 Dec 13 2006 uli
-rwxrwxrwx 2 222 users 1160136 Dec 13 2006 uli-a-2
-rw-rw-rw- 1 root sys 487379 Apr 23 10:22 uli.bin
-rwxrwxrwx 1 222 users 536 Dec 13 2006 uli.install
執行uli.install
# ./uli.install uli a 2
#
查看一下uli的各個可用選項
# ./uli -h
4.2.2 執行uli,殺掉操作進程
# ./uli
libp4 (9.219): Opening /stand/vmunix /dev/kmem
Loading symbols from /stand/vmunix
Kernel TEXT pages not requested in crashconf
Will use an artificial mapping from a.out TEXT pages
Loading symbols from /stand/dlkm/mod.d/krm
Note: Consider P4_ELF_WARNING=2 to get more details
Note: No debug information for this module
Found 16 matching unlinked file table entries.
15128進程執行了more操作,影響了空間的釋放
殺掉15128
# kill 15128
#
4.2.3 再查看一下/oracle的空間
# bdf /oracle
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lv_oracle
8192000 5253045 2755283 66% /oracle
可見,可用空間已經由原來的2698313kb升為2755283kb。
5 結篇
解決問題的方法是很多的,對於復雜的問題也可能有很簡便的解決的方法,所以最好在用重啟機器這樣方法之前償試一下,看是否有更好的更方便的方法。
Copyright © Linux教程網 All Rights Reserved