iT邦幫忙

0

Freebsd fsck 問題?

今天 /var 因為容量當初設太小了,被 LOG 給衝暴了,但是我刪了那個 LOG 檔,使用 df -h 看容量大小,似乎沒有把刪除的檔案清出,有上網看一下,使用

fsck /var

但是會出現

** /dev/mfid0s1d (NO WRITE)
** Last Mounted on /var
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
UNREF FILE I=94850 OWNER=root MODE=100644
SIZE=4096 MTIME=Aug 17 17:25 2011
CLEAR? no

UNREF FILE I=471070 OWNER=root MODE=100644
SIZE=10328424429 MTIME=Aug 17 17:25 2011
CLEAR? no

UNREF FILE I=1271833 OWNER=root MODE=140666
SIZE=0 MTIME=Aug 15 23:02 2011
CLEAR? no

** Phase 5 - Check Cyl groups
2406 files, 5076464 used, 615 free (615 frags, 0 blocks, 0.0% fragmentation)

該如何正常下指令?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

6
ganymede
iT邦好手 1 級 ‧ 2011-08-18 08:20:38
最佳解答

log 最好不要直接刪. 請先把 syslogd 停掉後再刪.
此時, 請先進入 single user mode, 並執行 fsck -y /dev/mfid0s1d
/dev/mfid0s1d 即為你 mount 在 /var 的 parition.

jccching iT邦新手 4 級 ‧ 2011-08-26 12:01:25 檢舉

原來是最近很討論的網路病毒感染 Client ,造成病毒不斷的開關 File-Server 的資料,所以 /var 的空間被 log 塞暴,解完 client 端病毒後,已經回到先前 LOG 大小了。

因為是緊急事件,所以我直接停掉 LOG 服務,再把 LOG 拉至別地方,再重啟服務,才發現有 Client 端電腦中毒在搞鬼。

停用服務 /etc/rc.d/syslog stop
啟用服務 /etc/rc.d/syslog start

4
牛哥
iT邦好手 1 級 ‧ 2011-08-26 11:18:48

LOG檔,一般會有它封存的機制。
現有的LOG檔,不要直接做刪除的處理,應該先把之前封存的檔案,視狀況搬遷或刪除。
然後看空間清理多少出來……

清LOG的方式,建議你用導向的方式做。
像是:

<pre class="c" name="code">cat /dev/null > /var/log/message

我要發表回答

立即登入回答