有时我们在执行rm或其它命令的时候,系统会报
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 值
2.OK,可以删除了
3.工作做完,把参数调回原值
方法二:使用递归式参数传递
参考链接:
Waldemar Mark Duszyk
http://www.wmduszyk.com/?p=3549&langswitch_lang=en
#find ./ -mtime +10 -name *.trc ksh: /usr/bin/find: 0403-027 The parameter list is too long. |
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 |
#rm * |
chdev -l sys0 -ncargs=4 |
方法二:使用递归式参数传递
find ./ -mtime +10 -exec rm {} \; |
参考链接:
Waldemar Mark Duszyk
http://www.wmduszyk.com/?p=3549&langswitch_lang=en
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/645199/viewspace-680441/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/645199/viewspace-680441/