"没有空间"在32K使用带有ulimit堆栈的shell脚本时出错

时间:2014-09-16 09:16:23

标签: shell ksh

目标是使用内存收集有关前10个进程的信息。这将有助于识别最高用户 - 在一段时间内。正在使用以下脚本。但是,经过一段时间后它停止了,没有空间"达到32K限制后出错。

#!/usr/bin/ksh

while :
do
    today=`date +"%Y%m%d_%H%M%S"`
    top=`svmon -P`
    sum=`svmon -P -t10 -O summary=basic`
    echo "$today" >> svmonps.out
    echo "$top" >> svomonps.out
    echo "$sum" >> svmonps.out
    sleep 30
done
exit 0

当前ulimit-stack(kbytes)的设置是32768.我们可以修改脚本以继续使用ulimit限制吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以放弃使用这些变量&子壳。
datesvmon直接运行到您的文件,甚至更好地运行到标准输出,并在调用脚本时附加到svmonps.out

检查一下:

#!/usr/bin/ksh

while :; do
    date +"%Y%m%d_%H%M%S"
    svmon -P
    svmon -P -t10 -O summary=basic
    sleep 30
done
exit 0

当你运行你的脚本时,像这样运行它以附加到你的文件:

  

$ myScript>> svmonps.out