【故障處理】-0403-027 The parameter list is too long

sdon發表於2010-11-27
有時我們在執行rm或其它命令的時候,系統會報0403-027 The parameter list is too long的錯,如:
#find ./ -mtime +10 -name *.trc   ksh: /usr/bin/find: 0403-027 The parameter list is too long.
出現這種情況主要是因為AIX核心引數ncargs控制,ncargs引數說明如下:

ncargs 用途: 指定執行 exec() 子例程時,ARG/ENU 列表(大小為 4 KB 的塊)允許的最大大小。
值: 預設值:6;範圍:6 到 1024
顯示: lsattr -E -l sys0 -a ncargs
更改: chdev -l sys0 -a ncargs=NewValue
更改會立即有效而且在引導期間儲存下來。
診斷: 使用者不可以執行任何附加的程式,因為傳遞給 exec() 系統呼叫的變元表太長。低預設值可能造成一些程式失敗並出現幅角列表太長錯誤訊息,在這種情況下,您可以嘗試使用以上的 chdev 命令增加 ncargs 值,然後重新執行該程式。
調整: 這是為了防止變元表過長引起 exec() 子例程失敗的一種機制。請注意,調整到一個較高 ncargs 值會對系統記憶體資源加一些額外的限制。

瞭解了0403-027錯誤,現在我們有討論兩種方法解決:
方法一:
  1.調高ncargs 值
#chdev -l sys0 -a ncargs=64
2.OK,可以刪除了
#rm *
3.工作做完,把引數調回原值
chdev -l sys0 -ncargs=4

方法二:使用遞迴式引數傳遞
 find ./ -mtime +10 -exec rm {} \;


參考連結:



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

相關文章