ব্যাশ স্ক্রিপ্ট থেকে 5 টি curl
অনুরোধ কার্যকর করার সর্বোত্তম উপায় কী parallel
? পারফরম্যান্সের কারণে আমি তাদের সিরিয়ালে চালাতে পারি না।
ব্যাশ স্ক্রিপ্ট থেকে 5 টি curl
অনুরোধ কার্যকর করার সর্বোত্তম উপায় কী parallel
? পারফরম্যান্সের কারণে আমি তাদের সিরিয়ালে চালাতে পারি না।
উত্তর:
কোনও প্রক্রিয়াটির পটভূমিতে কমান্ডের পরে '&' ব্যবহার করুন এবং তাদের সমাপ্তির জন্য অপেক্ষা করতে 'অপেক্ষা করুন'। আপনার যদি একটি উপ-শেল তৈরি করতে চান তবে কমান্ডগুলির আশেপাশে '()' ব্যবহার করুন।
#!/bin/bash
curl -s -o foo http://example.com/file1 && echo "done1" &
curl -s -o bar http://example.com/file2 && echo "done2" &
curl -s -o baz http://example.com/file3 && echo "done3" &
wait
সমান্তরালভাবে প্রক্রিয়াগুলি চালনার জন্য xargs এর একটি "-P" প্যারামিটার রয়েছে। উদাহরণ স্বরূপ:
wget -nv http://en.wikipedia.org/wiki/Linux -O- | egrep -o "http://[^[:space:]]*.jpg" | xargs -P 10 -r -n 1 wget -nv
তথ্যসূত্র: http://www.commandlinefu.com / কম্যান্ডস / ভিউ / 3269 / সমান্তরাল- ফাইল-ডাউনলোডিং- উইথ- উইজেট
আমি এর মতো কাজের জন্য gnu সমান্তরাল ব্যবহার করি ।
curl
করার জন্য একটি উদাহরণ প্রদান করতে পারেন gnu parallel
?
এখানে একটি curl
উদাহরণ এখানে xargs
:
$ cat URLS.txt | xargs -P 10 -n 1 curl
উপরের উদাহরণটিতে curl
প্রতিটি URL গুলি সমান্তরালে একসাথে 10 হওয়া উচিত। -n 1
সেখানে যাতে xargs
শুধুমাত্র থেকে 1 টি লাইন ব্যবহার URLS.txt
ফাইল প্রতি curl
সম্পাদন।
প্রতিটি xargs পরামিতি কী করে:
$ man xargs
-P maxprocs
Parallel mode: run at most maxprocs invocations of utility at once.
-n number
Set the maximum number of arguments taken from standard input for
each invocation of utility. An invocation of utility will use less
than number standard input arguments if the number of bytes
accumulated (see the -s option) exceeds the specified size or there
are fewer than number arguments remaining for the last invocation of
utility. The current default value for number is 5000.