轉-AIX檔案系統滿

wmlm發表於2010-03-02

原文地址 IBM知識庫 舒劍輝的blog

內容提要:
本文件將介紹在作業系統的使用過程中,管理員需要監測哪些檔案從而避免過度的空間使用;以及當檔案系統出現預期之外的空間消耗時,如何來查詢原因。本文件適用於AIX 版本4 和5 。

[@more@]
AIX檔案系統空間管理
內容提要:
本文件將介紹在作業系統的使用過程中,管理員需要監測哪些檔案從而避免過度的空間使用;以及當檔案系統出現預期之外的空間消耗時,如何來查詢原因。本文件適用於AIX 版本4 和5 。

根 ( / ) 檔案系統滿了的情況
/var 檔案系統滿了的情況
其它檔案系統及常用檢查技巧

說明 :
--------------------------------------------------------------------------------
根 (/) 檔案系統滿了的情況

檢查檔案/etc/security/failedlogin

使用下面的命令可以讀出failedlogin 檔案的內容:

who /etc/security/failedlogin

除了login 失敗,TTY 衍生成過快也會造成‘failedlogin ’記錄的產生。在檢視該檔案並且儲存過輸出結果後,就可以執行下面的命令清空該檔案:

cp /dev/null /etc/security/failedlogin

檢查目錄/dev

如果一個裝置的裝置名被輸錯了,例如把rmt0 寫成rmto ,在/dev 下將會生成一個檔案rmto 。在通常情況下,訪問它的命令會一直進行下去直到根檔案系統被填滿後才失敗,因為/dev 也是根(/) 檔案系統的一部分。所以要找到那些不代表真實裝置的裝置檔案(它們沒有主裝置號或輔裝置號),執行下列命令:

cd /dev
ls -l |pg

對於一個裝置檔案來說,在一般檔案顯示檔案大小的那個區域,我們通常會看到由逗號隔開的兩個數字,例如:

crw-rw-rw- 1 root system 12,0 Oct 25 10:19 rmt0

如果ls 的輸出像下面這樣,那麼這個檔案就應該被刪除。

crw-rw-rw- 1 root system 9375473 Oct 25 10:19 rmto

注意 :
1. 不要刪除/dev 目錄下正確的裝置檔案,錯誤的裝置檔案有一個特點,就是它們的大小一般都大於500 位元組。
2. 如果執行了審計系統,/audit 目錄(預設)可能很快被充滿,也要引起注意。

查詢大檔案

我們可以用find 命令來查詢大檔案。例如,要想列出根(/) 目錄下所有大於1MB 的檔案,可執行下面的命令:

find / -xdev -size +2048 -ls |sort -r +6

這條命令將找出所有超過1MB 的檔案並按從大到小的順序排列,最大的在最前面。

注意 :
在檢查根目錄時,/dev 目錄下的一些裝置檔案(它們沒有檔案大小而代之以主輔裝置號)將會和真實的檔案混雜在一起,它們可以被忽略掉。

find 命令還有其它有用的引數,例如 -newer ,詳細用法我們會在後面介紹。

注意 :
在刪除檔案前,使用者應該檢查該檔案當前是否被一些活動的使用者程式所使用,命令如下:

fuser

如果一個檔案在開啟的的情況下被刪除,那它將僅僅是在目錄列表中被刪除,在開啟該檔案的程式被殺掉前,分配給該檔案的存貯塊將不會被釋放。

--------------------------------------------------------------------------------

/var 檔案系統滿了的情況

查詢/var/tmp 目錄,清除不再使用的臨時檔案。

系統使用檔案/var/adm/wtmp 來記錄所有的login, 遠端login, 以及telnet 會話的連線情況。如果不加以監控的話,該檔案就有可能持續增長,除非執行了記帳系統(system accounting) ,它會每晚清空wtmp 檔案。/var/adm/wtmp 檔案可以被清空,也可以被編輯以刪除那些無用的歷史資訊。

清空/var/adm/wtmp , 可執行命令:

cp /dev/null /var/adm/wtmp

編輯wtmp 檔案並刪除沒用的記錄,先執行命令:

/usr/sbin/acct/fwtmp < /var/adm/wtmp >/tmp/out

編輯/tmp/out 檔案,刪除那些沒用的資訊,然後將修改過的資訊重新匯入回wtmp 檔案,執行:

/usr/sbin/acct/fwtmp -ic < /tmp/out > /var/adm/wtmp

檢查/var/adm/ras 目錄

清除錯誤日誌。
/var/adm/ras 目錄中包含系統錯誤日誌errlog 。該日誌檔案會一直存在除非手動地去清除它。不要用“cp /dev/null ”命令來把它清零,否則系統錯誤日誌功能將會被禁用。如果errlog 檔案的長度為0 ,我們必須從系統備份磁帶中恢復檔案來覆蓋它。

詳細清除步驟如下:
首先,停止錯誤日誌守護程式:

/usr/lib/errstop

第二,刪除錯誤日誌檔案/var/adm/ras/errlog ,或將其移到其它的檔案系統中。

注意 :如果刪除了errlog 檔案,所有歷史報錯記錄將被刪除。

第三,重起錯誤日誌守護程式:

/usr/lib/errdemon

此外,我們還可以使用系統定時執行作業(cron) 來定時清理errlog :

0 11 * * * /usr/bin/errclear -d S,O 30
0 12 * * * /usr/bin/errclear -d H 90

檢查/var/adm/ras 下是否有非常大的trcfile 檔案,如果有並且當前沒有啟用trace ,可以將其刪除掉:

rm /var/adm/ras/trcfile

另外,當dump 裝置被設成hd6 (系統預設是hd6 )的時候,/var/adm/ras 下常常會有系統dump 檔案vmcore* 存在,如果這些檔案是舊的,或者你不想再繼續保留,也可以用rm 命令刪掉它們。

檢查/var/spool 目錄

在/var/spool 目錄中包含有佇列子系統(queueing subsystem) 的檔案,可根據情況來清除這些檔案:

stopsrc -s qdaemon
rm /var/spool/lpd/qdir/*
rm /var/spool/lpd/stat/*
rm /var/spool/qdaemon/*
startsrc -s qdaemon

檢查/var/adm/acct 目錄

/var/adm/acct 目錄中包含有記帳系統的記錄,所以如果執行了記帳系統,該目錄下常會存在一些大檔案。如何管理這些檔案可以參照系統管理手冊14 章的內容。(System Management Guide, Chapter 14, SC23-2457-01)

檢查/var/preserve 目錄

/var/preserve 目錄會包含有異常終止的vi 會話。通常來說刪除它們是安全的,除非使用者想要恢復這其中的某些會話。使用者可以用命令 vi -r 來列出所有可恢復的會話,想恢復某一個指定會話,要用命令 vi -r

修改/var/adm/sulog 檔案

sulog 檔案會記錄 su 命令被使用的次數以及它們是否成功。這是個文字檔案,可以使用文字編輯器來檢視或修改。如果刪除sulog ,下次使用 su 命令的時候,系統會重新生成一個。

修改/var/tmp/snmpd.log 檔案

snmpd.log 被snmpd 守護程式用作日誌檔案,記錄相關事件。如果把它刪除掉,snmpd 守護程式將會重新生成它。

注意:
我們可以限定snmpd.log 的大小以避免它不斷地增長。編輯檔案/etc/snmpd.conf ,在檔案大小的設定段中填入想要的數值(單位是位元組)即可。

注意:
我們同樣可以用 fin d 命令來查詢/var 目錄下的大檔案:

find /var -xdev -size +2048 -ls| sort -r +6

注意:
AIX 提供了一個系統通用清理指令碼skulker ,它被放在/usr/sbin 目錄下。在使用它之前,請仔細閱讀該指令碼的使用幫助,確定要刪除哪些檔案,以及在刪除它們前,這些檔案的保留期限。
skulker 可以被設為系統定時執行的cron 作業,只要在crontab 中加入相應的記錄即可:

0 3 * * * /usr/sbin/skulker

-------------------------------------------------------------------------------

其它檔案系統及常用檢查技巧

我們已經知道find 命令帶-size 引數可以用來查詢大檔案。除此之外,如果檔案系統是剛剛被填滿的,我們還可以用-newer 引數來查詢最近更改過的檔案。下面我們透過一個例子來說明-newer 的用法:

我們要查詢/tmp/findnewer 下所有在3 月28 日12:00 後改動過的檔案。首先生成一個基準檔案,將它的時間戳設為3 月28 日12:00 。命令格式為:

touch mmddhhmm filename

在這裡,時間戳從左至右依次代表:
mm 月
dd 日
hh 小時 ( 按24 小時格式)
mm 分鐘

本例中,命令為 #touch 03281200 test

然後執行下面的命令來查詢此後改動過的檔案:

# find /tmp/findnewer -xdev -newer test -ls
2055 4 drwxr-xr-x 2 root system 512 Mar 30 11:09 /tmp/findnewer
2056 0 -rw-r--r-- 1 root system 0 Mar 29 10:30 /tmp/findnewer/123
2057 0 -rw-r--r-- 1 root system 0 Mar 30 2004 /tmp/findnewer/456
2059 0 -rw-r--r-- 1 root system 0 Mar 28 12:01 /tmp/findnewer/testa

/tmp/findnewer 中的所有檔案如下:
# ls -al /tmp/findnewer
total 16
drwxr-xr-x 2 root system 512 Mar 30 11:09 .
drwxrwxrwt 8 bin bin 2048 Mar 30 11:04 ..
-rw-r--r-- 1 root system 0 Mar 29 10:30 123
-rw-r--r-- 1 root system 0 Mar 30 2004 456
-rw-r--r-- 1 root system 0 Mar 28 11:30 789
-rw-r--r-- 1 root system 0 Mar 28 12:00 test
-rw-r--r-- 1 root system 0 Mar 28 12:01 testa
-rw-r--r-- 1 root system 0 Mar 28 11:59 testb
-rw-r--r-- 1 root system 0 Mar 25 12:00 testc

find 命令另一個有用的引數是-mtime ,我們可以用它來查詢過去24 小時內更改過的檔案。
例如:

find / -xdev -mtime 1 -ls (aix4.3,5.1 系統)
find / -xdev -mtime 0 -ls (aix5.2 系統)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-1031555/,如需轉載,請註明出處,否則將追究法律責任。

相關文章