ওয়েবসাইটের সামগ্রী ডাউনলোড করতে আমি উইজেট ব্যবহার করছি, তবে উইজেট ফাইলগুলি একে একে ডাউনলোড করে।
আমি কীভাবে 4 একযোগে সংযোগ ব্যবহার করে উইজেট ডাউনলোড করতে পারি?
ওয়েবসাইটের সামগ্রী ডাউনলোড করতে আমি উইজেট ব্যবহার করছি, তবে উইজেট ফাইলগুলি একে একে ডাউনলোড করে।
আমি কীভাবে 4 একযোগে সংযোগ ব্যবহার করে উইজেট ডাউনলোড করতে পারি?
উত্তর:
aria2 ব্যবহার করুন:
aria2c -x 16 [url]
# |
# |
# |
# ----> the number of connections
আমি এটা ভালোবাসি !!
-s
সংখ্যা নির্দিষ্ট করতে এবং -k
প্রতি বিভক্ত বিভাগে ন্যূনতম আকার নির্দিষ্ট করতে ভুলবেন না - অন্যথায় আপনি কখনই -x
সর্বোচ্চ সংযোগগুলিতে পৌঁছতে পারবেন না ।
ফাইল ডাউনলোডের গতি বাড়ানোর জন্য উইজেট একাধিক সকেট সংযোগগুলি সমর্থন করে না।
আমি মনে করি gmarian উত্তর চেয়ে আমরা কিছুটা ভাল করতে পারি।
সঠিক উপায়টি ব্যবহার করা aria2
।
aria2c -x 16 -s 16 [url]
# | |
# | |
# | |
# ---------> the number of connections here
-x, --max-connection-per-server=NUM The maximum number of connections to one server for each download. Possible Values: 1-16 Default: 1
এবং-s, --split=N Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URLs are used for backup. If less than N URIs are given, those URLs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by the --max-connection-per-server option. See also the --min-split-size option. Possible Values: 1-* Default: 5
About the number of connections Since 1.10.0 release, aria2 uses 1 connection per host by default and has 20MiB segment size restriction. So whatever value you specify using -s option, it uses 1 connection per host. To make it behave like 1.9.x, use --max-connection-per-server=4 --min-split-size=1M.
aria2c -x 4 -k 1M url
আমার পক্ষে ভাল কাজ করেছে (সংযোগ প্রতি 100 কিলোমিটারের একটি সীমা সহ একটি সার্ভার আমাকে বলা প্যারামিটারগুলি দিয়ে
aria2
করে না , এটি wget
যদি প্রয়োজন -r
হয় তবে এটি মানহীন প্রতিস্থাপন করে ।
যেহেতু জিএনইউ সমান্তরালটির এখনও উল্লেখ করা হয়নি, তাই আমাকে আরও একটি উপায় দিন:
cat url.list | parallel -j 8 wget -O {#}.html {}
cat
। এই সীমিত প্রসঙ্গে, এটি বেশ নিরীহ, তবে সম্ভবত আপনি এই অ্যান্টিপ্যাটার্নটি চালাতে চান না।
আমি (সম্ভবত) একটি সমাধান খুঁজে পেয়েছি
এক সার্ভার থেকে পরের দিকে কয়েক হাজার লগ ফাইলগুলি ডাউনলোড করার প্রক্রিয়ায় হঠাৎ আমার বিএসডি-তে কিছু গুরুতর মাল্টিথ্রেডড ডাউনলোডিং করার দরকার হয়েছিল, প্রায়শই উইজেটের সাথে আমি এটিকে হ্যান্ডেল করার কথা ভাবতে পারি এমন সহজ উপায়। চারপাশে একটু তাকাতে গিয়ে আমাকে এই ছোট্ট নকশাতে নিয়ে গেল:
wget -r -np -N [url] & wget -r -np -N [url] & wget -r -np -N [url] & wget -r -np -N [url]
আপনার
wget -r -np -N [url]
যতটুকু থ্রেডের প্রয়োজন কেবল পুনরাবৃত্তি করুন ... এখন দেওয়া এটি সুন্দর নয় এবং অবশ্যই এটি করার আরও ভাল উপায় আছে তবে আপনি যদি দ্রুত এবং নোংরা কিছু চান তবে এটি কৌশলটি করা উচিত ...
বিঃদ্রঃ: বিকল্পটি কেবল "নতুন" ফাইলগুলি ডাউনলোড করে -N
তোলে wget
যার অর্থ সার্ভারে টাইমস্ট্যাম্প পরিবর্তিত না হলে ফাইল ওভাররাইট বা পুনরায় ডাউনলোড করতে পারে না won't
-nc
বিকল্পটি যুক্ত করুন : "কোনও ক্লোবার নেই" - এটি উইজেটের কারণে অযাডি ডাউনলোড করা (এমনকি আংশিক) ফাইলগুলিকে উপেক্ষা করতে পারে।
wget -i list.txt -nc & wget -i list.txt -nc & wget -i list.txt -nc
খুব কুরুচিপূর্ণ, তবে ওহে, এটি কার্যকর হয়। : পি
-b
পতাকা, ব্যাকগ্রাউন্ডে wget হয় প্রক্রিয়া চালানো হবে ব্যাশ এর বিকল্প হিসেবে &
কাজ বিল্ট-ইন নিয়ন্ত্রণ। STDOUT -o <filename>
নির্দিষ্ট করা না থাকলে উইজেট-লগতে লেখা হবে । স্ক্রিপ্টিং জন্য ভাল। আরও তথ্যের জন্য উইজেট (1) দেখুন।
এটি করতে পারে এমন আরেকটি প্রোগ্রাম axel
।
axel -n <NUMBER_OF_CONNECTIONS> URL
বেসিক এইচটিটিপি আথের জন্য,
axel -n <NUMBER_OF_CONNECTIONS> "user:password@https://domain.tld/path/file.ext"
axel -n 4 "user:pasword@http://domain.tld/path/file.ext"
একটি নতুন (তবে এখনও প্রকাশ হয়নি) সরঞ্জামটি হ'ল মেজেট । এটি ইতিমধ্যে উইজেট থেকে প্রচুর অপশন পরিচিত এবং এটি একটি লাইব্রেরির সাথে আসে যা আপনাকে সহজেই আপনার নিজের অ্যাপ্লিকেশনটিতে এম্বেড (পুনরাবৃত্ত) ডাউনলোড করতে দেয়।
আপনার প্রশ্নের উত্তর দিতে:
mget --num-threads=4 [url]
হালনাগাদ
অনেক বাগ ঠিক করা এবং আরও বেশি বৈশিষ্ট্যযুক্ত (যেমন HTTP / 2 সমর্থন) সমেত Mget এখন Wget2 হিসাবে বিকাশিত ।
--num-threads
এখন --max-threads
।
আমি দৃ strongly়ভাবে httrack ব্যবহার করার পরামর্শ দিচ্ছি।
উদা: httrack -v -w http://example.com/
এটি ডিফল্ট হিসাবে 8 যুগপত সংযোগের সাথে একটি আয়না করবে। Httrack যেখানে খেলতে হবে অনেকগুলি বিকল্প রয়েছে where একবার দেখুন।
অন্যান্য পোস্টারগুলি যেমন উল্লেখ করেছে, আমি আপনাকে এরিয়া 2 এ একবার দেখার পরামর্শ দিই । সংস্করণ 1.16.1 এর জন্য উবুন্টু ম্যান পৃষ্ঠা থেকে:
ফাইল ডাউনলোড করার জন্য aria2 একটি ইউটিলিটি। সমর্থিত প্রোটোকল হ'ল এইচটিটিপি (এস), এফটিপি, বিটরেন্ট এবং মেটালিংক। aria2 একাধিক উত্স / প্রোটোকল থেকে একটি ফাইল ডাউনলোড করতে পারে এবং আপনার সর্বাধিক ডাউনলোড ব্যান্ডউইদথ ব্যবহার করার চেষ্টা করে। এটি একই সময়ে এইচটিটিপি (এস) / এফটিপি এবং বিটোরেন্ট থেকে একটি ফাইল ডাউনলোড সমর্থন করে, যখন এইচটিটিপি (এস) / এফটিপি থেকে ডাউনলোড করা ডেটা বিটটোরেন্ট জলাখলে আপলোড করা হয়। মেটালিংকের খণ্ড চেকসামগুলি ব্যবহার করে, বিটটোরেন্টের মতো কোনও ফাইল ডাউনলোড করার সময় আরিয়া 2 স্বয়ংক্রিয়ভাবে ডেটার সংস্থাগুলি যাচাই করে।
আপনি -x
প্রতি সার্ভারে সংযোগের সর্বাধিক সংখ্যা নির্দিষ্ট করতে পতাকাটি ব্যবহার করতে পারেন (ডিফল্ট: 1):
aria2c -x 16 [url]
যদি একই ফাইলটি একাধিক অবস্থান থেকে উপলব্ধ থাকে তবে আপনি সেগুলি থেকে ডাউনলোড করতে বেছে নিতে পারেন। -j
প্রতিটি স্ট্যাটিক ইউআরআই (ডিফল্ট: 5) এর জন্য সর্বাধিক সংখ্যক সমান্তরাল ডাউনলোড নির্দিষ্ট করতে পতাকা ব্যবহার করুন ।
aria2c -j 5 [url] [url2]
আরও তথ্যের জন্য http://aria2.sourceforge.net/ এ দেখুন । ব্যবহারের তথ্যের জন্য, ম্যান পৃষ্ঠাটি সত্যই বর্ণনামূলক এবং ব্যবহারের উদাহরণ সহ নীচে একটি বিভাগ রয়েছে। একটি অনলাইন সংস্করণ http://aria2.sourceforge.net/manual/en/html/README.html এ পাওয়া যাবে ।
একাধিক সংযোগে উইজেট ডাউনলোড করা যায় না, এর পরিবর্তে আপনি অন্যান্য প্রোগ্রামটি আরিয়া 2 এর মতো ব্যবহার করতে পারেন।
pcurl চেষ্টা করুন
http://sourceforge.net/projects/pcurl/
উইজেটের পরিবর্তে কার্ল ব্যবহার করে, সমান্তরালে 10 টি বিভাগে ডাউনলোড।
ব্যবহার
aria2c -x 10 -i websites.txt >/dev/null 2>/dev/null &
ওয়েবসাইট.txt এ প্রতি লাইনে 1 ইউআরএল রাখুন, উদাহরণস্বরূপ:
https://www.example.com/1.mp4
https://www.example.com/2.mp4
https://www.example.com/3.mp4
https://www.example.com/4.mp4
https://www.example.com/5.mp4
তারা সবসময় বলে যে এটি নির্ভর করে তবে এটি যখন কোনও ওয়েবসাইটের মিররিংয়ের কথা আসে তখন সেরাটি উপস্থিত থাকে httrack । এটি সুপার দ্রুত এবং কাজ করা সহজ। একমাত্র নেতিবাচকতা এটি বলা হয় সমর্থন ফোরাম কিন্তু আপনি সরকারী ডকুমেন্টেশন ব্যবহার করে আপনার উপায় খুঁজে পেতে পারেন । এটিতে জিইউআই এবং সিআইএল উভয়ই ইন্টারফেস রয়েছে এবং এটি কুকিজকে কেবল ডক্স পড়ার জন্য সমর্থন করে এটি সেরা এটি।
httrack -c8 [url]
ডিফল্টরূপে সার্ভারের ওভারলোড এড়াতে এক সাথে সংযোগের সর্বাধিক সংখ্যক 8 টি সীমাবদ্ধ
সমান্তরালে একাধিক ফাইলে কাজ xargs
করতে ব্যবহার wget
করুন
#!/bin/bash
mywget()
{
wget "$1"
}
export -f mywget
# run wget in parallel using 8 thread/connection
xargs -P 8 -n 1 -I {} bash -c "mywget '{}'" < list_urls.txt
এরিয়া 2 বিকল্পগুলি, 20 এমবি থেকে কম ফাইলের সাথে সঠিকভাবে কাজ করা working
aria2c -k 2M -x 10 -s 10 [url]
-k 2M
2 এমবি অংশে ফাইল বিভক্ত করুন
-k
বা --min-split-size
20mb এর ডিফল্ট মান রয়েছে, যদি আপনি এই বিকল্পটি সেট না করেন এবং 20 এমবি এর নীচে ফাইল করেন তবে এটি কেবলমাত্র একক সংযোগে চলবে কোনও মূল্যই -x
বা না হোক-s
make
সহজেই সমান্তরাল হতে পারে (যেমন, make -j 4
)। উদাহরণস্বরূপ, Makefile
আমি উইজেট ব্যবহার করে সমান্তরালভাবে ফাইলগুলি ডাউনলোড করতে ব্যবহার করছি এটি একটি সহজ :
BASE=http://www.somewhere.com/path/to
FILES=$(shell awk '{printf "%s.ext\n", $$1}' filelist.txt)
LOG=download.log
all: $(FILES)
echo $(FILES)
%.ext:
wget -N -a $(LOG) $(BASE)/$@
.PHONY: all
default: all
নিয়মিত এক্সপ্রেশন বা এফটিপি গ্লোববিং ব্যবহার বিবেচনা করুন । এর মাধ্যমে আপনি ফাইলের নামের বিভিন্ন গ্রুপের উপস্থিতিগুলির ঘনত্বের উপর নির্ভর করে একাধিকবার উইজেট শুরু করতে পারেন।
এটি উদাহরণস্বরূপ যেখানে আমি দুটি এনএএস-এর মধ্যে একটি ফোল্ডার সিঙ্ক করব:
wget --recursive --level 0 --no-host-directories --cut-dirs=2 --no-verbose --timestamping --backups=0 --bind-address=10.0.0.10 --user=<ftp_user> --password=<ftp_password> "ftp://10.0.0.100/foo/bar/[0-9a-hA-H]*" --directory-prefix=/volume1/foo &
wget --recursive --level 0 --no-host-directories --cut-dirs=2 --no-verbose --timestamping --backups=0 --bind-address=10.0.0.11 --user=<ftp_user> --password=<ftp_password> "ftp://10.0.0.100/foo/bar/[!0-9a-hA-H]*" --directory-prefix=/volume1/foo &
প্রথম উইজেট শুরু হওয়া সমস্ত ফাইল / ফোল্ডার সিঙ্ক করে 0, 1, 2... F, G, H
এবং দ্বিতীয় থ্রেডটি সমস্ত কিছু সিঙ্ক করে।
এটি একটি 10 জি ইথারনেট পোর্ট (10.0.0.100) এবং দুটি 1 জি ইথারনেট পোর্ট (10.0.0.10 এবং 10.0.0.11) সহ একটি এনএএস এর মধ্যে সিঙ্ক করার সহজতম উপায় ছিল। আমি দুটি উইজেটের থ্রেডকে --bind-address
বিভিন্ন ইথারনেট পোর্টের সাথে আবদ্ধ করেছি &
এবং প্রতিটি লাইনের শেষে রেখে সমান্তরাল বলেছি called এর মাধ্যমে আমি মোট 2x 100 এমবি / এস = 200 এমবি / গুলি সহ বিশাল ফাইলগুলি অনুলিপি করতে সক্ষম হয়েছি।