加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何限制在bash脚本中运行的命令数量?

发布时间:2020-12-15 17:04:07 所属栏目:安全 来源:网络整理
导读:让我们假设我有一个执行代码的bash脚本: for i in $LIST; do /path/to/my/script.sh $i done 正如您所看到的,我正在将这些脚本推送到后台,并允许父脚本尽可能快地执行尽可能多的命令.问题是我的系统最终会耗尽内存,因为这些命令需要大约15或20秒才能运行每
让我们假设我有一个执行代码的bash脚本:
for i in $LIST; do
 /path/to/my/script.sh $i &
done

正如您所看到的,我正在将这些脚本推送到后台,并允许父脚本尽可能快地执行尽可能多的命令.问题是我的系统最终会耗尽内存,因为这些命令需要大约15或20秒才能运行每个实例.

我正在运行一个静态script.sh文件,并将一个简单的变量(即客户编号)传递给脚本.在任何给定时间,我都有大约20,000到40,000条记录.

我的问题是,如何告诉系统只能同时运行X个script.sh实例.如果运行的太多,我想暂停脚本,直到脚本数低于阈值,然后继续.

有任何想法吗?

仅限bash的解决方案:
MAXJOBS=<your-requested-max + 3>
for i in $LIST; do
 /path/to/my/script.sh $i &
 while true; do
   NUMJOBS=`ps --ppid $$-o pid= | wc | awk -F ' ' '{ print $1;}'`
   test $NUMJOBS -lt $MAXJOBS && break
done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读