কীভাবে উইজেটের সাথে সংযোগগুলি আবার চেষ্টা করবেন?


29

আমার কাছে খুব অস্থির ইন্টারনেট সংযোগ রয়েছে এবং কখনও কখনও 200 এমবি হিসাবে বড় ফাইল ডাউনলোড করতে হয়।

সমস্যাটি হ'ল গতিটি ঘন ঘন ড্রপ হয়ে বসে --, -K/sএবং প্রক্রিয়াটি জীবিত থাকে। আমি ভেবেছিলাম প্রক্রিয়াটিতে কেবল কিছু কেআইএলএল সিগন্যাল প্রেরণ করব, তবে আমি সিগন্যাল সম্পর্কে উইজেট ম্যানুয়ালটিতে পড়েছি এটি কোনও লাভ হয় না।

আমি কীভাবে নিজেকে পুনরায় সংযুক্ত করতে বাধ্য করতে পারি wgetএবং সংযোগটি ড্রপ হয়ে যাওয়ার পরে যেখানে ডাউনলোডটি ছেড়ে যায় এবং আবার ফিরে আসার জন্য তা ডাউনলোড আপকে বেছে নিতে পারি?

আমি wgetদৌড়াতে ছেড়ে যেতে চাই এবং যখন আমি ফিরে আসি, আমি এটিকে ডাউনলোড করা দেখতে চাই এবং গতিতে অপেক্ষা করি না --,-K/s

উত্তর:


47

--, -K/sপরিস্থিতি এড়াতে আপনি ব্যবহার করতে পারেন --read-timeout=seconds। এটি সংযোগটি সেকেন্ডের পরে সময় শেষ করবে।

আপনার যদি এর বাইরে যাওয়ার দরকার হয় তবে আপনি এই সেটআপটি ব্যবহার করতে পারেন

wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0

এটি প্রত্যাখাত সংযোগ এবং অনুরূপ মারাত্মক ত্রুটিগুলির --retry-connrefusedপুনরায় চেষ্টা করবে ( --waitretry), পরবর্তী পুনরায় চেষ্টা করার আগে এটি 1 সেকেন্ড অপেক্ষা করবে ( ), কোনও তথ্য না পাওয়ার ক্ষেত্রে এটি সর্বোচ্চ 20 সেকেন্ড অপেক্ষা করবে এবং তারপরে আবার চেষ্টা করুন ( --read-timeout), এটি সর্বোচ্চ 15 সেকেন্ড অপেক্ষা করবে প্রাথমিক সংযোগের সময় শেষ হওয়ার আগে ( --timeout) এবং অবশেষে এটি অসীম সংখ্যক বার ( -t 0) পুনরায় চেষ্টা করবে ।

whileস্থানীয় নেটওয়ার্ক ব্যর্থতা এবং এর অনুরূপ এড়াতে আপনি এটিকে একটি লুপে রাখতে চাইবেন । এই ক্ষেত্রে আপনার কাছে যোগ করতে হবে --continueযাতে ডাউনলোড করবেন যেখানে শেষ করেছিলেন অবিরত থাকতে। নিম্নলিখিত বাশ ভাল কাজ করে

while [ 1 ]; do
    wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0 --continue
    if [ $? = 0 ]; then break; fi; # check return value, break if successful (0)
    sleep 1s;
done;

বোনাস টিপ হিসাবে আপনি --no-dns-cacheহোস্ট আপনার অনুরোধটিকে ডিএনএস দ্বারা একাধিক সার্ভারের মধ্যে ভারসাম্য বজায় রাখার ক্ষেত্রেও ব্যবহার করতে পারেন ।

দাবি অস্বীকার: আমি এটি ব্যবহার করার পরামর্শ দিই না কেননা সংযোগটি অস্থির হয়ে ওঠে এবং এটি অযৌক্তিকভাবে ছেড়ে দেওয়া যদি একরকম বুদ্ধিমানের মতো হয় তবে এটি হোস্টটিকে স্প্যাম করবে। তবে আপনার যদি সত্যই কিছু ডাউনলোড করার প্রয়োজন হয় এবং আপনার সংযোগ পর্যাপ্তভাবে কাজ না করে তবে আপনি যা চান তা এটি।


2
ডিফল্টরূপে --read-timeout=900। আপনি মাত্র 15 মিনিট অপেক্ষা করতে পারেন এবং উইজেট ডাউনলোড শুরু হবে।
বরিস

এই "পুনরায় চেষ্টা" সহায়তার জন্য ধন্যবাদ, তবে আমার জন্য এটি এখনও 100% কাজ করে না, কারণ উইজেটটি এখানে শেষ হয়: এসএসএল সংযোগ স্থাপনে অক্ষম। এটি ত্রুটিটি পুনরায় চেষ্টা করে না। পুনরুত্পাদন করার জন্য pkg.jenkins.io/debian/jenkins.io.key
জুরজ

20

--tries=number

এই বিকল্পটি সংখ্যায় পুনরায় চেষ্টা করার সংখ্যা নির্ধারণ করে। অসীম পুনরায় চেষ্টা করার জন্য 0 বা 'ইনফ' উল্লেখ করুন।

wget --tries=70 http://example.com/myfile.zip এটা করা উচিত।

ডিফল্টটি "সংযোগ অস্বীকার" বা "পাওয়া যায়নি" (404) এর মতো মারাত্মক ত্রুটিগুলি বাদ দিয়ে 20 বার পুনরায় চেষ্টা করা হবে , যা পুনরায় চেষ্টা করা হয় না।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.