আমি কীভাবে এর আকার সীমা নির্ধারণ বা সেট করতে পারি /etc/hosts
? এটি কত লাইন থাকতে পারে?
আমি কীভাবে এর আকার সীমা নির্ধারণ বা সেট করতে পারি /etc/hosts
? এটি কত লাইন থাকতে পারে?
উত্তর:
সমস্যাযুক্ত প্রভাবগুলির মধ্যে ধীর হোস্টনেম রেজোলিউশন অন্তর্ভুক্ত রয়েছে (যদি না ওএস কোনওভাবে রৈখিক তালিকাটিকে দ্রুত-অনুসন্ধানের কাঠামোর মধ্যে রূপান্তর করে?) এবং tabকোনও অর্থবোধক ফাইলের আকার পৌঁছানোর আগে শেল সমাপ্তির সাথে অবাক করা কথোপকথনের সম্ভাবনা ।
উদাহরণ স্বরূপ! যদি কেউ 500,000 হোস্ট এন্ট্রি রাখে/etc/hosts
# perl -E 'for (1..500000) { say "127.0.0.10 $_.science" }' >> /etc/hosts
বিজ্ঞানের জন্য, tabজেডএসএইচ- এ ডিফল্ট হোস্টনামের সমাপ্তিটি আমার সিস্টেমে একটি সমাপ্তির প্রম্পট ফিরে আসতে প্রায় 25 ডলার সময় নেয় (মঞ্জুরি দেওয়া হয়েছে, এটি ল্যাপটপে ২০০৪ সাল থেকে 5400 আরপিএম ডিস্ক সহ, তবে এখনও)।
আমি মনে করি না যে এটির লাইনের সংখ্যার ক্ষেত্রে আকারের সীমা রয়েছে।
ডিএনএসের আগে (যা 1985 সালে ব্যবহারে আনা হয়েছিল), এটি এই ফাইলটি হোস্ট নেম লুকআপ করার একমাত্র মাধ্যম হিসাবে কাজ করেছিল, সুতরাং আমি অনুমান করি যে এর অর্থ এই ফাইলটির হাজারে বা কমপক্ষে শত শত এন্ট্রি থাকতে হবে সবচেয়ে ভাল সংযুক্ত প্রাক 1988 ইন্টারনেট নোডগুলিকে সমর্থন করতে সক্ষম হোন।
1985 সালের একটি উদাহরণ এখানে রয়েছে (ফর্ম্যাটটি কিছুটা পরিবর্তিত হয়েছে): http://jim.rees.org/apollo-archive/hosts.txt এই ফাইলে 1680 টি লাইন রয়েছে যার মধ্যে 1325 হোস্ট লাইন। অবশিষ্ট 355 লাইনগুলি ফাঁকা, মন্তব্য, নেটওয়ার্ক বা গেটওয়ে 1 ।
একমাত্র আসল সীমা যেটি আমি পেয়েছি তা হ'ল কিছু সিস্টেমে পৃথক লাইনগুলিBUFSIZ
অক্ষরের চেয়ে কম সীমাবদ্ধ থাকে (আমার ওপেনবিএসডি মেশিনে 1024)।
আপনার হাতে কয়েক মুঠো বেশি এন্ট্রি থাকলে /etc/hosts
আপনার পরিবর্তে লোকাল নেম সার্ভার স্থাপনের বিষয়টি বিবেচনা করা উচিত তবে এটি আমার ব্যক্তিগত মতামত।
1 এটি খনন করার জন্য জেফ শ্যাচলারকে ধন্যবাদ।
/etc/hosts
ফর্ম্যাটে রূপান্তর করা সাধারণ বলে মনে করি না । বেশিরভাগ ইউনিক্স সিস্টেম এমনকি ইন্টারনেটে ছিল না, এমনকি কোনও মেশিন থাকলেও এটির জন্য একটি সম্পূর্ণ হোস্ট টেবিলের প্রয়োজন ছিল না, কেবল মুষ্টিমেয় মেশিনগুলির সাথে কথা বলার দরকার ছিল। 100 টিরও বেশি এন্ট্রি সহ এমন অনেক মেশিন থাকলে আমি অবাক হব।
আমি কীভাবে / ইত্যাদি / হোস্টগুলির আকার সীমা নির্ধারণ করতে পারি?
এটি একটি নিয়মিত ফাইল, সুতরাং সীমাটি অন্তর্নিহিত ফাইল সিস্টেমের সীমাগুলির সাথে সামঞ্জস্য করবে (যা নিজেই এর পিছনে ডিস্কের সংখ্যা দ্বারা আবৃত হবে), একই (সম্ভবত মূল ( /
)) ফাইল সিস্টেমের অন্য কোনও ফাইল দ্বারা ব্যবহৃত স্থান বিয়োগ করবে :
আমি কীভাবে / ইত্যাদি / হোস্টগুলির আকার সীমা নির্ধারণ করতে পারি?
যেহেতু এটি একটি ম্যানুয়ালি সম্পাদিত ফাইল, কেবলমাত্র ম্যানুয়ালি:
sed -i '100,$d' /etc/hosts
(100 এবং এর বাইরে লাইনগুলি সরাতে)।
স্থির বাফার বরাদ্দ করার সময় আকারের সীমাটি কেবলমাত্র প্রযোজ্য। gethostbyname(3)
, যা এন্ট্রিগুলিকে পার্স করে /etc/hosts
, স্থির বাফার বরাদ্দ করে না - এবং কখনও হয় না। বিএসডি 4.3 অ্যালগরিদমের 1988 এর মূল রিলিজটি একটি ওপেন-ফাইল দেখায়, লাইন পার্স করার সময়, ক্লোজ-ফাইলের ধরণ:
sethostent(0);
while (p = gethostent()) {
if (strcmp(p->h_name, name) == 0)
break;
for (cp = p->h_aliases; *cp != 0; cp++)
if (strcmp(*cp, name) == 0)
goto found;
}
found:
endhostent();
আধুনিক প্রয়োগগুলি সমস্ত প্রয়োজনীয়তে এই heritageতিহ্য ধরে রাখে।
যাইহোক, অভ্যন্তরীণভাবে, *hostent
ফাংশনগুলির পরিবার ফাইলটিতে বর্তমান লাইনে একটি ফাইল পয়েন্টার সঞ্চয় করে। sethostent
ফাইলটি খোলে এবং ফাইল পয়েন্টার অবস্থান নির্ধারণ করে। gethostent
ডেটা পায় এবং পয়েন্টারটি অগ্রসর করে। endhostent
ফাইল পয়েন্টারটি বন্ধ করে দেয়। জিএনইউ সি লাইব্রেরি এই ফাংশনগুলির বিষয়ে একটি বিশদ রেফারেন্স সরবরাহ করে।
আপনি যেমন বাস্তবায়ন থেকে অনুমান করতে পারেন, ফাইলের সমাধানের আগে ফাইলগুলি দ্রুত নিষ্পত্তি হয়। যদি আপনার হোস্ট ফাইলটি বিশাল হয়, এটি কার্যকর হয়।
সুতরাং, ফাইলটি যত বড় হোক না কেন, ওএস এটি গ্রাস করবে। যদিও শেষ পর্যন্ত, আপনি ফাইল সিস্টেম সীমাতে আঘাত করবেন ( জেফ শ্যাচলারের উত্তর অনুসারে )। আপনারও সর্বোচ্চ লাইন আকারের সীমা রয়েছে ( কুসালানন্দের উত্তর অনুসারে )। তবে শেষ পর্যন্ত আপনি এটিকে নিজের ইচ্ছে মতো বড় করে তুলতে পারেন। তবে দয়া করে, না।
... আমি আমার মস্তিষ্ককে টেক্কা দিয়েছি এবং আমার জীবনের জন্য আমি কোনও একক পরিস্থিতি বা পরিস্থিতি সম্পর্কে ভাবতে পারি না যেখানে আপনি কোনও আকারের সীমাবদ্ধতার বিষয়ে যোগাযোগ /etc/hosts
করতে চান - আপনি গুরুতর সমস্যার মতো ব্যবহারিক সমস্যার মধ্যে চলে যাবেন পারফরম্যান্স getaddrinfo()
সিস্টেমের পরিবারগুলিতে আঘাত হানে যে একটি ডিএনএস কোয়েরি প্রেরণ করা হবে কিনা তা সিদ্ধান্ত নেওয়ার আগে, ফাইলটিকে সেই আকারের ফ্ল্যাট টেক্সট ফাইল বজায় রাখতে সমস্যাগুলির কিছুই বলতে হবে না এমন সিদ্ধান্ত নেওয়ার আগে সকলকেই ফাইলটির পরামর্শ নিতে হবে।
আমি সন্দেহ করি যে আমাদের এখানে যা আছে তা উচ্চ স্তরে যোগাযোগের ব্যর্থতা। আপনি কোন বিশাল সমস্যাটি সমাধান করার চেষ্টা করছেন /etc/hosts
? আমি প্রায় নিশ্চিত যে এর চেয়ে আরও ভাল সমাধান এর আছে।
hosts
বিজ্ঞাপন / ম্যালওয়্যার / ট্র্যাকিং / ইত্যাদি ব্ল্যাকলিস্ট করতে একটি ফাইল ব্যবহার করে । ইন্টারনেটে কিউরেটেড তালিকাগুলি রয়েছে, আমি যেটি ব্যবহার করি তা হ'ল 41k লাইন এবং আকারের 1.1MB।
dnsmasq
- উদাহরণস্বরূপ dnsgate দেখুন (যা আমি চেষ্টা করি নি)।
/etc/hosts
ফাইলটি হোস্টফাইএল.অর্গ