সুডো দিয়ে মৃত্যুদণ্ড কার্যকর করার সময় কেন উইজেট ত্রুটি দেয়, কিন্তু ছাড়াই কাজ করে?


21

আমি নিম্নলিখিত আদেশটি চেষ্টা করেছি:

$ wget -q --tries=10 --timeout=20 --spider http://google.com

( এই এসও পোস্টটি থেকে b আমি আমার ইন্টারনেট সংযোগ ব্যাশে চেক করতে চাই))

আমি নিম্নলিখিত আউটপুট পেতে:

Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:50--  http://google.com/
Connecting to 127.0.0.1:3128... connected.
Proxy request sent, awaiting response... 302 Found
Location: http://www.google.de/?gfe_rd=cr&ei=k_IIVreaN-yH8Qfe1Yu4CA [following]
Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:50--  http://www.google.de/?gfe_rd=cr&ei=k_IIVreaN-yH8Qfe1Yu4CA
Connecting to 127.0.0.1:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.

ঠিক আছে মনে হচ্ছে, তবে এটির সাথে সাথে সিএমডি চালিয়ে sudoআমি এটি পেলাম:

Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:27--  http://google.com/
Resolving google.com (google.com)... failed: Name or service not known.
wget: unable to resolve host address google.com

আমার একটি স্ক্রিপ্টে এই লাইনটি প্রয়োজন, যা আমি কল করি sudoএবং তাই এটি সর্বদা ব্যর্থ হয়।

কেউ কি এর কারণ বলতে পারেন? আমি কীভাবে এর আশেপাশে কাজ করতে পারি?


দুঃখিত, আমি আসলে প্রশ্ন তৈরী করতে চান AskUbuntu । এখানে অন টপিক কিনা তা নিশ্চিত নয় ...
h0ch5tr4355

11
এটি এখানে অন টপিক।
ডেলটিক

4
এটি সেখানে অফ-টপিক হবে।
স্নেকডোক

এটি একটি এক্সওয়াই সমস্যার মতো দেখাচ্ছে । গুগল.কমের wgetবিপরীতে এলোমেলোভাবে সম্পাদন করা কোনও ইন্টারনেট সংযোগ কাজ করছে কিনা তা যাচাই করার একটি ভাল উপায় বলে মনে হয় না: উদাহরণস্বরূপ, আপনি এমন কোনও সংযোগে থাকতে পারেন যা গুগলে এইচটিটিপি সংযোগের অনুমতি দেয় তবে আপনার স্ক্রিপ্টটি আসলে যা করতে চায় তা নিষিদ্ধ করে ; অথবা গুগল তাদের সাইটে উইজেট অ্যাক্সেস নিষিদ্ধ করতে পারে। আপনার আসল সমস্যাটি কী, যার জন্য আপনি মনে করেন যে sudo wget blahএটি একটি সম্ভাব্য সমাধান?
ডেভিড রিচার্বি

উত্তর:


39

আপনার পরিবেশে একটি প্রক্সি সংজ্ঞায়িত হয়েছে। আপনার উপস্থিত হয় 127.0.0.1:3128

আপনি যখন চালনা করেন তখন sudoপ্রক্সি এনভায়রনমেন্ট ভেরিয়েবল পাস হয় না, এজন্য আপনি সরাসরি সমাধান করতে পারবেন না google.com

আপনি এই আদেশ দ্বারা আপনার পরিবেশের ভেরিয়েবলগুলিতে কোন প্রক্সি / প্রক্সিগুলি সংজ্ঞায়িত করেছেন তা দেখতে পারেন:

env | grep proxy

জিজ্ঞাসা উবুন্টু সম্পর্কিত অতিরিক্ত তথ্য

দ্রষ্টব্য: আপনি যদি sudoHTTP প্রক্সি পরিবেশের পরিবর্তনশীলটি পাস করতে চান তবে এটি চেষ্টা করুন:

sudo http_proxy="$http_proxy" wget -q --tries=10 --timeout=20 --spider http://google.com

আপনি ব্যবহার করে সমস্ত পরিবেশের ভেরিয়েবলগুলিও পাস করতে পারেন sudo -E:

sudo -E wget -q --tries=10 --timeout=20 --spider http://google.com

স্টিং ওভারফ্লোতে যখন sudoআইএনএন থাকাকালীন পরিবেশ পরিবর্তনশীল রাখার জন্য অন্যান্য বিকল্প রয়েছে ।


5
ঠিক আছে, আপনাকে কেবল উত্তর পোস্ট করার জন্য নয়, ব্যাখ্যা করার জন্য লিঙ্কগুলি পোস্ট করার জন্য আপনাকে অনেক ধন্যবাদ। আমার জন্য নিখুঁতভাবে কাজ করেছেন।
h0ch5tr4355

7
আপনি sudo -Eপরিবেশের পরিবর্তনশীলগুলি সংরক্ষণ করতেও ব্যবহার করতে পারেন
স্কুইডলি

4
শুধুমাত্র http_proxy পাস করার জন্য, sudo http_proxy=$http_proxy wget ...ভাল না ? আপনি যদি কোনও স্ক্রিপ্টে এটি ব্যবহার করেন তবে প্রক্সি পরিবর্তন হলে আপনাকে এটি পরিবর্তন করতে হবে না।
জোসেফ

1
খুব ভাল, @ জোসেফ। আমি আপনার পরামর্শ দিয়ে উত্তর আপডেট করেছি।
ডেলটিক

1
আপনি সুডো তৈরি করতে যোগ Defaults env_keep += "http_proxy ftp_proxy"করতে /etc/sudoersপারেন স্বয়ংক্রিয়ভাবে সেই এনভ ভেরিয়েবলগুলি সংরক্ষণ করুন।
ফ্রাঙ্কোইস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.