cURL从文件读取URL-正在休眠的进程

时间:2018-12-12 13:29:36

标签: bash loops curl cookies debian

也许有人对如何使用bash脚本解决我的问题有一个想法。

背景:我有一个文件(urls.txt),其中包含30个URL(每行一个URL),该文件用于while循环中,以创建30个带有cURL的并行线程来同时下载/访问这些URL(访问cookie需要URL)。该脚本总共运行大约10秒钟,并由cronjob启动和终止。总共打开了很多并行的cURL进程。这导致很多睡眠过程的问题。 ulimit -u设置为47828,ulimit -n设置为1024。该脚本在debian系统上运行。当脚本以top -d1运行并且剩余足够的RAM时,我监视了进程/内存。当大约有1000个进程正在运行时,休眠进程的数量几乎相等。

目标:在30个网址之一中,在特定时间范围内嵌入了javascript。 javascript读取cookie,然后服务器处理数据。我需要非常快地成为第一个找到嵌入脚本的正确URL的人(只有前20个用户计数)。这样一来,可以并行下载30个URL。

问题: 1)将ulimit -n增加到unlimited有助于避免睡眠过程并使它们全部执行吗?该脚本需要尽快执行,而睡眠进程对此无济于事。

2)当前,我正在下载URL输出(带有curl -O -J)。如果我不下载文件,是否可以阻止睡眠过程? curl进程仍将运行,但不会在服务器上写入任何文件以避免 打开文件限制?我什至不需要下载的文件,因为我只需要访问包含cookie数据的30个URL。

当前的while循环看起来像这样。

while true: do

nohup cat urls.txt | xargs -P30 -n1 curl -b cookie.txt -O -J > /dev/null 2>&1 &

done

0 个答案:

没有答案