Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Solaris OS 經典疑難雜症總彙:syslogd CPU 飆高、df/du 不符、FTP/NFS/Oracle 整合陷阱與修復

編輯:Linux 教學

Solaris(現 Oracle Solaris)雖漸退出歷史舞台,但大量金融、電信核心系統仍在運行。本文彙整 8 大經典案例:syslogd CPU 佔用、磁碟空間幻覺、FTP 僅登入不可上傳、SQLPlus Root 執行失敗、utmpx 損毀導致無法登入、WWN 獲取、CDE 顯示問題、XManager 登入失敗、NFS 掛載 Oracle 數據庫參數、tar 解壓空間不足假象。

案例一、syslogd CPU 飆高 50% + console 狂噴 message overflow on /dev/log

現象:開機後 syslogd 佔用 50% CPU,console 重複輸出錯誤。
根因:/etc/dfs/dfstab 共享 /home(share -F nfs -o rw -d "home dirs" /home),但 /home 底層檔案系統已卸載,成為 automount 唯讀目錄,syslogd 反覆嘗試寫入失敗。
修復:註釋或刪除該行,或改 -o ro。

案例二、df -k 顯示空間與實際不符(差 200GB)

現象:刪除資料庫檔案後拷貝新檔,df 顯示空間不足,du 卻正常。
根因:Oracle 後台進程仍持有已刪除檔案的開啟檔案描述符,空間未釋放。
修復:停止所有 Oracle 進程(sqlplus / as sysdba → shutdown immediate),空間即釋放。
原則:df 看檔案系統區塊,du 走目錄樹統計 inode;**已刪除但被進程持有的檔案,df 計入已用,du 不計入**。

案例三、用戶無法 FTP(先前正常)

根因:測試僅 FTP 權限帳號時,誤將 /usr/bin/noshell 加入 /etc/shells,導致合法 shell 清單污染。
修復:從 /etc/shells 移除錯誤項。
補充:Solaris 建立僅 FTP 帳號:
/etc/passwd:ftptest:x:1008:1::/home/ftptest:/usr/bin/noshell
/etc/shells:必須包含 /usr/bin/noshell,否則 FTP 登入報 530 錯誤。

案例四、SQLPlus 無法在 Root 執行、FTP 登入可上傳失敗

根因:根目錄 / 缺少執行權限(x 位被移除)。
修復:chmod +x /(或 chmod 755 /),所有服務恢復正常。
教訓:根目錄權限異動極高風險,嚴禁隨意 chmod -R 根目錄。

案例五、清空 utmpx 導致所有用戶無法登入(含 Console)

現象:No utmpx entry. You must exec "login" from the lowest level "shell".
修復:單用戶模式啟動 → rm /var/adm/utmpx; touch /var/adm/utmpx; chmod 644 /var/adm/utmpx; chown root:root /var/adm/utmpx → 重啟。
警告:utmpx 記錄當前登入會話,**嚴禁手動清空**。

案例六、獲取 HBA WWN 號碼


# 已連接存儲
luxadm -e port
luxadm -e dump_map 

# 未連接存儲 (Qlogic HBA)
prtpicl -c scsi-fcp -v | grep -i wwn
# 未連接存儲 (JNI HBA)
prtpicl -c scsi -v | grep -i wwn

案例七、CDE 未啟動導致 X 圖形安裝失敗 / XManager 無法登入

現象:打補丁報 X 錯,機房發現顯卡解析度問題。
修復:
fbconfig -prconf
fbconfig -res 1024x768x70
/usr/dt/bin/dtlogin stop
/usr/dt/bin/dtlogin start

XManager 無法登入 Solaris x86:被動模式可行。最終切換 GDM 解決:
svcs cde-login → svcadm disable cde-login → /usr/dt/config/dtconfig -d → svcadm enable gdm2-login (Solaris 10) 或 gdm (Nevada)。

案例八、NFS 掛載 Oracle 數據庫目錄參數


mount -F nfs -o hard,rw,noac,rsize=32768,wsize=32768 :<共享目錄> <掛載點>
# hard: 硬掛載(重試不放棄) rw: 讀寫 noac: 關閉屬性快取
# rsize/wsize: 32KB 傳輸單元,提升大量 I/O 效能

案例九、df -k 顯示 11G 空閒但 tar + gunzip 解壓報 extract write error

根因:磁碟分區 inode 耗盡(大量小檔案),或檔案系統碎片化導致連續空間不足。
排查:df -i 檢查 inode 使用率;fsck 檢查碎片。
教訓:**df -k 只看區塊,df -i 才看 inode;大量小檔案場景必雙監控**。

結語

Solaris 疑難雜症多源於「檔案系統語意差異(df/du/inode)」、「服務相依性誤解(syslogd/dfstab)」、「權限模型嚴格(根目錄 x 位、shells 清單、utmpx)」、「圖形子系統脆弱(CDE/X11/GDM)」。維護存量系統時,**動手前先備份、先單用戶模式、先讀 man page**,是生存法則。

Copyright © Windows教程網 All Rights Reserved