আপনি আমাদের Magic Mirror টিউটোরিয়াল ফলো করলে দেখতে পাবেন wget কমান্ড ফাইল ডাউনলোড করতে ব্যবহার করা হয়েছে।
এই টিউটোরিয়ালে ব্যাখ্যা করা হয়েছে wget কিভাবে ব্যবহার করবেন - এটি একটি কমান্ডলাইন টুল যা ওয়েব থেকে ফাইল ডাউনলোড (গেট) করে,.HTTP, HTTPS, FTP, বা FTPS যেকোনো প্রোটোকল দিয়ে।
লিনাক্স শেল থেকে ইন্টারনেট থেকে ফাইল ডাউনলোড করতে, ব্যাশ স্ক্রিপ্ট থেকে কল করতে ব্যবহার করুন - এটি সিম্পল এবং ভার্সাটাইল, একবার শুরু হলে ইউজার ইন্টারফেরেন্স ছাড়া ব্যাকগ্রাউন্ডে চলতে পারে।
সিনট্যাক্স
wget [OPTIONS]... [ URLS ]...
নোট করুন:
- OPTIONS হলো নিচের টেবিল থেকে পাস করা অপশনগুলো, স্পেস দিয়ে আলাদা করা হয়
- URLS হলো ডাউনলোড করার URL গুলোর লিস্ট, স্পেস দিয়ে আলাদা করা হয়
ডক্স থেকে সরাসরি wget অপশনগুলো:
| সাধারণ অপশন | |
|---|---|
| -o logfile | সকল মেসেজ logfile-এ লগ করুন। সাধারণত মেসেজ স্ট্যান্ডার্ড এররে রিপোর্ট হয়। |
| -a logfile | logfile-এ অ্যাপেন্ড করুন। এটি -o এর মতোই, শুধু ওভাররাইট না করে অ্যাপেন্ড করে। যদি logfile না থাকে, নতুন ফাইল তৈরি হবে। |
| -q | Wget আউটপুট বন্ধ করুন। |
| -i file | লোকাল বা এক্সটার্নাল file থেকে URL পড়ুন। এই ফাংশন ব্যবহার করলে কমান্ড লাইনে URL দরকার নেই। |
| -t number | রিট্রাই সংখ্যা number সেট করুন। |
| -c | আংশিক ডাউনলোড হওয়া ফাইল ডাউনলোড কন্টিনিউ/রিজিউম করুন। |
| -T seconds | নেটওয়ার্ক টাইমআউট seconds সেকেন্ড সেট করুন। |
| -w seconds | রিট্রিভালের মাঝপথে নির্দিষ্ট seconds সেকেন্ড ওয়েট করুন। |
| --user=user | HTTP বা FTP অথেন্টিকেশন ইউজারনেম সেট করুন। |
| --password=password | HTTP বা FTP অথেন্টিকেশন পাসওয়ার্ড সেট করুন। |
| --post-data=string | GET এর বদলে POST রিকোয়েস্ট করুন এবং ডেটা পাঠান। string ফরম্যাট: "key1=value1&key2=value2" |
| -r | রিকার্সিভ রিট্রিভিং অন করুন। |
| -l depth | রিকার্সন Мак্সিমাম ডেপথ লেভেল depth সেট করুন। ডিফল্ট ম্যাক্স ডেপথ ৫। |
| -m | মিররিং-এর জন্য উপযুক্ত অপশন অন করুন। এটি রিকার্সন এবং টাইম-স্ট্যাম্পিং অন করে, ইনফিনিট রিকার্সন ডেপথ সেট করে এবং FTP ডিরেক্টরি লিস্টিং রাখে। |
| -p | এই অপশন Wget কে একটি HTML পেজ সঠিকভাবে ডিসপ্লে করার জন্য প্রয়োজনীয় সকল ফাইল (ইনলাইন ইমেজ, সাউন্ড, রেফারেন্সড স্টাইলশিট) ডাউনলোড করতে বাধ্য করে। |
উদাহরণ
HTTPS সার্ভার থেকে ফাইল ডাউনলোড
সিঙ্গেল ফাইল ডাউনলোড, বেসিক ইউজ:
wget https://www.example.com/file.zip
ফাইল ডাউনলোড কন্টিনিউ/রিজিউম করুন
যদি ডাউনলোড আংশিকভাবে কমপ্লিট হয়, -c অপশন দিয়ে রিজিউম করুন:
wget -c https://www.example.com/file.zip
ফাইল লিস্ট থেকে ডাউনলোড, লগে অ্যাপেন্ড করে
যদি আপনার কাছে ডাউনলোড করার URL গুলোর লিস্ট থাকে একটা টেক্সট ফাইলে, সেটা সরাসরি wget-এ পাস করুন এবং রেজাল্টের লог লিখুন:
wget -a log.txt -i url-list.txt
আপনি -o ও ব্যবহার করতে পারেন লগ ফাইল লিখতে, এটি অ্যালরেডি এক্সিস্ট করলে ওভাররাইট করবে।
ফাইল ডাউনলোড, ৫ বার রিট্রাই, কয়েটলি
ফাইল ডাউনলোড রিট্রাই করুন এবং টার্মিনালে প্রগ্রেস প্রিন্ট না করুন:
wget -t 5 -q https://www.example.com/file.zip
ফাইল লিস্ট থেকে ডাউনলোড, প্রতিটি ডাউনলোডের মাঝে ৬ সেকেন্ড ওয়েট, ১২ সেকেন্ড টাইমআউট
সার্ভার লোড কমাতে ডাউনলোডের মাঝে ওয়েট করুন, এবং সার্ভার ১২ সেকেন্ডের মধ্যে রেসপন্স না দিলে আবোর্ট করুন:
wget -w 6 -T 12 -i url-list.txt
ইউজারনেম এবং পাসওয়ার্ড লাগে এমন FTPS সার্ভার থেকে ফাইল ডাউনলোড
ইউজারনেম bob এবং পাসওয়ার্ড boat দিয়ে FTPS সার্ভার থেকে ডাউনলোড:
wget --user=bob --password=boat ftps://ftp.example.com/file.zip
POST রিকোয়েস্ট দিয়ে ফাইল ডাউনলোড
ডিফল্ট GET রিকোয়েস্টের বদলে HTTP POST রিকোয়েস্ট করুন এবং ডেটা পাঠান। --post-data দিয়ে ব্ল্যাঙ্ক স্ট্রিংও পাঠানো যায়:
wget --post-data="postcode=2000&country=Australia" https://www.example.com/file.zip
এই উদাহরণে আমরা POST ডেটা হিসেবে দুটি ভ্যালু পাঠাচ্ছি - postcode এবং country।
POST রিকোয়েস্ট করার ক্ষেত্রে cURL আরও ভার্সাটাইল হতে পারে।
FTP দিয়ে ডিরেক্টরি রিকার্সিভ ডাউনলোড ডেপথ লিমিটসহ
রিকার্সিভ ডাউনলোড মানে একটি ফোল্ডারের কন্টেন্ট এবং তার সাব-ফোল্ডারগুলোর কন্টেন্ট ডাউনলোড করা। এই উদাহরণে ডেপথ লিমিট ৩ - মানে যদি ফোল্ডার ৩ টি অন্য ফোল্ডারের ভেতরে নেস্টেড থাকে, সেটা ডাউনলোড হবেনা:
wget -r -l 3 ftps://ftp.example.com/path/to/folder
FTP দিয়ে পুরো ডিরেক্টরি সকল কন্টেন্টসহ ডাউনলোড
wget -m ftps://ftp.example.com/path/to/folder
Wget ব্যবহার করে পুরো ওয়েব পেজ ক্লোন করা
যদি আপনি পুরো একটা ওয়েবপেজ গ্র্যাব করতে চান - সকল ইমেজ, স্টাইল, স্ক্রিপ্টসহ, তাহলে ব্যবহার করুন:
wget -p https://www.example.com/page.html
সাকসেস রেট ভিন্ন হতে পারে - কিছু মডার্ন ওয়েব পেজ তাদের নেটিভ এনভায়রনমেন্টের বাইরে রিপ করা হলে ভালো কাজ করে না।