限制从 bash 脚本给出的 cURL 请求的数量
Rate Limiting the Number of cURL request given from a bash script
我编写了 bash 脚本来计算文件的哈希值,当它的文件路径给定并查询文件哈希值之一以从 API 服务(解析使用 jq
) .
#Scanner.sh
#!/bin/bash
for i in $(find -type f);do
md5_checksum=$(md5sum $i|cut -d' ' -f 1)
sha1_checksum=$(sha1sum $i|cut -d' ' -f 1)
sha256_checksum=$(sha256sum $i|cut -d' ' -f 1)
json_result="$(curl --silent -H 'Authorization:Basic XXXX' 'https://XXXXX.com/api/databrowser/malware_presence/query/sha1/'$sha1_checksum'?format=json&extended=true'| jq -r '.rl.malware_presence.name,.rl.malware_presence.level' | awk -vORS=, '{print }' |sed 's/,$/\n/')"
echo "$md5_checksum,$sha1_checksum,$sha256_checksum,$json_result"
done
#Result :
c63a1576e4b416e6944a1c39dbdfc3b4,fd55dfdd9a432e34ce6c593cd09a48f457f7aab6,e2d1c1975c2406f60f1c0fe5255560c2cd06434e669933536a86296a2eb70020,Malware,5
现在,处理一个文件哈希并获得一个文件哈希(10 秒)的结果需要花费太多时间。我怎样才能每秒发送 5 个请求并更快地获得结果?
有什么建议吗?
您可以将您的代码放在一个函数中,然后 运行 它在后台运行,像这样:
runCurl() {
md5_checksum=$(md5sum |cut -d' ' -f 1)
sha1_checksum=$(sha1sum |cut -d' ' -f 1)
sha256_checksum=$(sha256sum |cut -d' ' -f 1)
json_result="$(curl --silent -H 'Authorization:Basic XXXX' 'https://XXXXX.com/api/databrowser/malware_presence/query/sha1/'$sha1_checksum'?format=json&extended=true'| jq -r '.rl.malware_presence.name,.rl.malware_presence.level' | awk -vORS=, '{print }' |sed 's/,$/\n/')"
echo "$md5_checksum,$sha1_checksum,$sha256_checksum,$json_result"
}
for i in $(find -type f);do
runCurl $i &
done
我编写了 bash 脚本来计算文件的哈希值,当它的文件路径给定并查询文件哈希值之一以从 API 服务(解析使用 jq
) .
#Scanner.sh
#!/bin/bash
for i in $(find -type f);do
md5_checksum=$(md5sum $i|cut -d' ' -f 1)
sha1_checksum=$(sha1sum $i|cut -d' ' -f 1)
sha256_checksum=$(sha256sum $i|cut -d' ' -f 1)
json_result="$(curl --silent -H 'Authorization:Basic XXXX' 'https://XXXXX.com/api/databrowser/malware_presence/query/sha1/'$sha1_checksum'?format=json&extended=true'| jq -r '.rl.malware_presence.name,.rl.malware_presence.level' | awk -vORS=, '{print }' |sed 's/,$/\n/')"
echo "$md5_checksum,$sha1_checksum,$sha256_checksum,$json_result"
done
#Result :
c63a1576e4b416e6944a1c39dbdfc3b4,fd55dfdd9a432e34ce6c593cd09a48f457f7aab6,e2d1c1975c2406f60f1c0fe5255560c2cd06434e669933536a86296a2eb70020,Malware,5
现在,处理一个文件哈希并获得一个文件哈希(10 秒)的结果需要花费太多时间。我怎样才能每秒发送 5 个请求并更快地获得结果?
有什么建议吗?
您可以将您的代码放在一个函数中,然后 运行 它在后台运行,像这样:
runCurl() {
md5_checksum=$(md5sum |cut -d' ' -f 1)
sha1_checksum=$(sha1sum |cut -d' ' -f 1)
sha256_checksum=$(sha256sum |cut -d' ' -f 1)
json_result="$(curl --silent -H 'Authorization:Basic XXXX' 'https://XXXXX.com/api/databrowser/malware_presence/query/sha1/'$sha1_checksum'?format=json&extended=true'| jq -r '.rl.malware_presence.name,.rl.malware_presence.level' | awk -vORS=, '{print }' |sed 's/,$/\n/')"
echo "$md5_checksum,$sha1_checksum,$sha256_checksum,$json_result"
}
for i in $(find -type f);do
runCurl $i &
done