আমি কি শুধু আপডেটডিকে অক্ষম করতে পারি?


26

updatedbআদৌ কি দরকার? আমি কখনই ব্যবহার করি না locateএবং আমার সার্ভারগুলিতে কয়েক মিলিয়ন মিলিয়ন ফাইল থাকে যা সাধারণত আপডেটডকে দীর্ঘ সময়ের জন্য চালিত করে এবং মাইএসকিউএল এবং / অথবা অন্যান্য সফ্টওয়্যার দ্বারা প্রয়োজনীয় I / O গ্রাস করে।

আমি কি কেবল ক্রোন থেকে এটিকে সরাতে এবং সমস্ত কিছু কাজ করার আশা করতে পারি? (প্রতিটি কিছুর অর্থ সার্ভারে পাওয়া সাধারণ সফ্টওয়্যার: লিনাক্স, সিপেনেল, মাইএসকিএল, অ্যাপাচি, পিএইচপি ইত্যাদি)।

উত্তর:


25

হ্যাঁ আপনি এটি crons এ অক্ষম করতে পারেন বা সরবরাহ করে এমন প্যাকেজটি সরিয়ে ফেলতে পারেন updatedb। একটি রেড হ্যাট সিস্টেমে আপনি নির্ধারণের পদক্ষেপগুলি অনুসরণ করতে চান যে অপসারণের আগে কোনও কিছুর প্রয়োজন আছে কিনা requires

  1. প্রোগ্রামটি ডিস্কে কোথায় রয়েছে তা প্রথমে সন্ধান করুন।

    $ type updatedb
    updatedb is /usr/bin/updatedb
    
  2. পরবর্তীটি কী কী প্যাকেজ সরবরাহ করে তা সন্ধান করুন updatedb

    $ rpm -qf /usr/bin/updatedb
    mlocate-0.26-3.fc19.x86_64
    
  3. কিছু প্রয়োজন কিনা দেখুন mlocate

    $ rpm -q --whatrequires mlocate
    no package requires mlocate
    
  4. কিছুই করার প্রয়োজন নেই যাতে আপনি প্যাকেজটি সরাতে পারেন।

    $ yum remove mlocate
    

1
rpmএছাড়াও আছে --whatrecommends। আমি মনে করি ফেডোরা গত কয়েক বছর আগে এটি একটি ধারণা হিসাবে সন্ধান করতে শুরু করেছিল। (ডিবিয়ান / উবুন্টু পক্ষের "প্রস্তাবিত" নির্ভরতা পাশাপাশি "প্রয়োজনীয় "গুলি ইনস্টল করার ক্ষেত্রে খেলাপি হয়ে গেছে)।
সোর্সজেদি

তাই অপসারণের পরে আমি মুছতে /var/lib/mlocateপারি?
রামরতন গুপ্ত 20

1
@RamratanGupta - হ্যাঁ
SLM

13

আপনি কনফিগারেশন ফাইল /var/wwwসম্পাদনা করে অনেকগুলি ফাইল ( উদাহরণস্বরূপ) ডিরেক্টরিগুলির স্ক্যানিং অক্ষম করতে পারেন /etc/updatedb.conf। আপনি যদি সত্যিই এটি অক্ষম করতে চান তবে কেবল ক্রোনজব সরিয়ে দিন।


5

আপনার প্যাকেজ ম্যানেজার ব্যবহার করে এটি সরান, যদি অন্য প্যাকেজ এটি ব্যবহার করে তবে আপনি জানতে পারবেন যেহেতু এটির উপর নির্ভর করতে হবে (প্যাকেজ নির্ভরতা)।

আমি একটি সার্ভার আছে Nginx, php-fpmএবং mysql, এবং এটি ছাড়া সুন্দর কাজ করে updatedb


উপরন্তু, কার্যক্ষম মধ্যে আপনি ব্যবহার করতে পারেন aptitude remove, aptitude whyঅথবা aptitude search '?installed ?recommends(mlocate)'। এগুলি সমস্ত শোয়ের সাথে প্রয়োজনীয়তাগুলি ছাড়াও নির্ভরতাগুলির প্রস্তাব দেয়। apt এখন ডিফল্টরূপে প্রস্তাবিত প্যাকেজগুলি ইনস্টল করে, সুতরাং এগুলি অপরিহার্য বলে মনে করা হয় না, তবে তারা খুব কার্যকর কিছু উপ-ফাংশন সরবরাহ করতে পারে।
সোর্সজেদি

0

আমি এটি বলে কোনও অঙ্গ প্রত্যক্ষ করতে যাচ্ছি না, তবে সম্ভবত এটি আপডেটড নয় যা আপনার সমস্যার কারণ হয়ে উঠছে। সম্ভবত আপনি অন্য কিছু চান না, হয় এমন একটি ব্যাক-আপ অ্যাপ্লিকেশন যা আপনি আপনার 'পছন্দ' হিসাবে কনফিগার করেছেন না বা আপনার প্রোফাইল / সিস্টেম গ্রুপ কাঠামো সহ কোনও সুরক্ষা সমস্যা।

আরেকটি ক্ষেত্রে যেখানে মনে হয় যে সিস্টেমগুলির মেমরি বরাদ্দ ব্যবহারকারীর বিরুদ্ধে কাজ করছে সেটি হল 'অজান্তে ভার্চুয়াল ফাইল সিস্টেমগুলি স্ট্যাকিং করা' scenario এবং এটি সমস্যার উত্সাহ। একটি 'ভার্চুয়াল অসুস্থ-যুক্তিযুক্ত বোমা' তাই কথা বলতে।

এটি প্রায়শই প্রায়শই একটি ext 4 সিস্টেমে ফ্যাট 32 এ ফর্ম্যাট করা ইউএসবি ড্রাইভের সাথে ঘটে থাকে যারা zfs সিস্টেমে স্থানান্তরিত হয় যা মেন লগইন শেল হিসাবে সিএসএস শেলের সাথে ভুলভাবে সেট আপ করা হয়। এটি ডিস্কে "রিড-ফাইল কেবলমাত্র ইউএসবি ফাইল সিস্টেম" সমস্যার ভার্চুয়াল পুনরাবৃত্তি তৈরি করে এবং ফ্যাট 32 থেকে ড্রাইভটি ভিএফএটে ফর্ম্যাট করে / মাউন্ট করে, যার ফলস্বরূপ একটি খারাপ ব্লক সেক্টর তৈরি হয় এবং এটির জন্য ডিরেক্টরিটি বের করে (কার্যত চলবে) অভিভাবক ডিরেক্টরি স্তর, যা অসীম লুপের কারণ! ডিরেক্টরিটি শারীরিকভাবে পিতামাতার স্তরক্রমের স্তরে নয়। সিএসএস কারণগুলির সিনট্যাক্স এটির কারণ। * দ্রষ্টব্য: ড্রাইভটি কেবল সমস্ত সিস্টেমে পড়তে হবে তবে একটি zfs সি-শেল লগইন সিস্টেম।

আপডেটডিকে সম্পূর্ণরূপে নিষ্ক্রিয় করা মেমরি-বরাদ্দ এবং 'রোল ব্যাক ইফেক্ট'-এর প্রসঙ্গে অ-যুক্তি তৈরি করতে পারে .. আপনি যখন চান না যখন আপনার কখনও রোল ব্যাক হয়েছে, আপনি বুঝতে পারবেন আমি কী বলতে চাইছি যখন দুই ঘন্টা মূল্যমানের কমান্ড লাইন স্ক্রিপ্টিং ফুবার-এড কারণ আপনি আপনার কাজের প্রক্রিয়াটিকে মেমরির মধ্যে বরাদ্দ করেননি।

এখন যদি আপনার কাছে দুটি বা ততোধিক শারীরিক প্রসেসর থাকে (যেমন ডুয়াল কোর বা আরও বেশি), এবং ডিডিআর 3 র্যাম, তবে আপনার জরিমানা। আপনার ভারী গ্রাফিকগুলি যতক্ষণ না চালানো যায়, সেই ক্ষেত্রে যদি সেই বিদ্যুৎ লোড আপনার সমস্যার কারণ হয়ে থাকে তবে আপডেটডব আপনার তালিকার সর্বশেষে থাকবে। আপনি যদি কোনও কারণে সিস্টেমে আপনার চলাফেরার ছদ্মবেশ ধারণ করার চেষ্টা করছেন তবে আপডেটবিডিকে অক্ষম করার পরিবর্তে এটি চালিয়ে যাওয়ার আরও অন্যান্য উপায় রয়েছে এবং বাস্তবে আপডেটড আপনার ক্রিয়াকলাপকে দৃify়তর করে দেবে যা আপনার সিস্টেমের ছদ্মবেশে 'কিছুই ঘটে না'।

বাইনারি ফাইল / ইউএসআর / বিন / আপডেটডিবির আকারের উপর ভিত্তি করে এবং ওএস-এর সাথে সিগন্যাল / সিস্টেম যোগাযোগের আর্কিটেকচার বিবেচনা করে এবং ব্যাশটি একে অপরের সাথে সংযুক্ত শেল ড্যাশ বা অ্যাশ অ্যাসক্রোনাস কলের আকারের 10 গুণ বেশি সিস্টেমের উপর খুব সস্তা।

আপনি যদি লিখেছেন শেল চলমান ক্রমিক স্ক্রিপ্টগুলিতে লগ ইন হয়ে থাকেন এবং আপনি প্রশাসক হন (যেমন sudo), নিম্নলিখিত কমান্ডটি চালাচ্ছেন:

~$ sudo bash
:~# ./script.sh

তারপরে আপনি সম্ভবত আপনার স্ক্রিপ্টের মধ্যে একটি স্থানীয় ভেরিয়েবল তৈরি করতে চান (আপডেটডাবলির জন্য সিস্টেম প্রাইভেলিজ প্রয়োজন, একেএ রুট / সুডো / হুইল প্রয়োজন), যেমন:

#! /bin/sh
# Create local variables
UPD="updatedb"

echo "Beginning Execution of sequence "

সিক্যুয়েন্সটি আপনার অন্য লিখিত শেল স্ক্রিপ্টগুলি থেকে STDOUT / STDIN ব্যবহার করছে যা আপনার মূল স্ক্রিপ্টের সাথে ভেরিয়েবল হিসাবে চালাচ্ছে বা বলুন আপনার ব্যক্তিগত বা ব্যবসায়িক অ্যাডমিন প্যাকেজ সেট আপ আছে যেখানে আপনি সিড্রোম থেকে আপলোড / ডাউনলোড / পোর্ট আপলোড করেন বা ইউএসবি বা যা-ই হোক না কেন, এটি অত্যন্ত বড় এবং তাদের জন্য ব্যক্তিগত ইনস্টলেশন স্ক্রিপ্ট রয়েছে, আপনি আপডেট বানাতে চান। যখন টার্মিনাল শেলটি খোলা থাকে, এটি আপনার মূল অ্যাপ্লিকেশন উদাহরণ। অন্যান্য অ্যাপ্লিকেশনগুলি / অসম্পূর্ণভাবে চালাতে পারে তবে সামগ্রিক সিস্টেম / কম্পিউটিং চাহিদার ক্ষেত্রে আপডেটবিড সর্বনিম্ন ব্যয়বহুল। অনেক সময়, বিশেষত lxdm ডেস্ক এনভিরো এবং ল্যাক্সটার্মের সাথে (যে জিনিসটি সুপার দ্রুত) তবে কেবলমাত্র তা নয়; আমার স্ক্রিপ্টগুলিতে আপডেটবিড যুক্ত করার সাথে সাথে সিস্টেমটি আমার ত্রুটিগুলি গুলি করেছে যে ফাইলগুলির অস্তিত্ব নেই বা স্ক্রুয় কিছু ঘটেছে। এবং আমি কি পছন্দ করি!

শেলটি এটি পরিচালনা করে এমন সিস্টেমের চেয়ে দ্রুততর আমি আপনাকে গ্যারান্টি দিচ্ছি!

কোন ক্ষেত্রে আপনি পূর্ববর্তী ক্রমটিকে মেমোরিতে লক করতে আপডেটব ভেরিয়েবল কল করবেন shown

echo "Updating local database "

$UPD

echo "Exiting script two "

exit

তুমি কি দেখছ আমি কি বলছি? আপনি যদি এটি জিজ্ঞাসা করেন কারণ আপনি কার্যকর করার গতি পরীক্ষা অর্থাৎ অ্যান্ড্রু টানেনবাউম স্টাইলের চেয়ে চালাচ্ছেন। অন্যান্য বুদ্ধিমান আপনার সুবিধার্থে সরঞ্জামটি ব্যবহার করুন।


আপডেটডিবের সমস্যা সিপিইউ বা মেমরির নয়, আইও ব্যান্ডউইথের। আমার ক্ষেত্রে (একটি দুর্দান্ত সিপিইউ এবং এড়াতে প্রচুর মেমোরি সহ একটি সিস্টেম) এটি আমার হার্ড ড্রাইভটি ঘন্টার জন্য 5 এমবি / সেকেন্ডে ঘুরছে, একে একে, সেই ড্রাইভের উপর নির্ভরশীল অন্য সমস্ত কিছুকে ধীর করে দিচ্ছে। এবং যখন আমি জানব যে আমি ঠিক কীটি সন্ধান করছি, সেগুলি নতুন-ইশ ফাইল, তাই কার্যকর locateনয় কারণ আমি নিশ্চিত হতে পারি না যে এটি সূচিবদ্ধ। যখন ফাইলগুলি পুরানো হয়, আমি fzfঅনুসন্ধান করি এবং একটি अस्पष्ट অনুসন্ধান করব।
ডেভিডমাহ

0

অন্তত অর্চলিনাক্সে, এটি প্রদর্শিত হয় man-db.timerএবং এটি updatedb.timerডিফল্টরূপে সক্ষম হয় (যেমন: নিম্নলিখিত ফাইলগুলি উপস্থিত থাকে), তবে রয়েছে no installation config (WantedBy, RequiredBy, Also, Alias settings in the [Install] section, and DefaultInstance for template units). This means they are not meant to be enabled using systemctl. [...](থেকে আউটপুট systemctl enable {man-,update}db.timer)।

এগুলি প্রতীকী লিঙ্কগুলি যা ফাইল সিস্টেমে উপস্থিত রয়েছে:
/usr/lib/systemd/system/multi-user.target.wants/man-db.timer
/usr/lib/systemd/system/multi-user.target.wants/updatedb.timer

এটি কেবল তাদের সরানোর বিষয় হওয়া উচিত।
যাইহোক, তারা একে পুনরায় / ইনস্টলেশন এ recreated করা হবে / এর আপগ্রেড man-db, mlocateপ্যাকেজ যথাক্রমে।

আর্চলিনাক্সের জন্য, প্যাকম্যানকে অপসারণের জন্য একটি সম্ভাব্য কর্মফল রয়েছে।
তবে আপনি এটি আপগ্রেড জুড়ে সক্ষম করতে চাইলেও এটি এ জাতীয় প্রতিটি ইভেন্টে এগুলি সরিয়ে ফেলবে।
আপনি, সেই ক্ষেত্রে, টাইমার সক্ষম করতে চাইলে হুকটি অক্ষম করতে পারেন।
তবে, টাইমার সক্ষম করা কেবল প্যাকেজের পুনরায় / ইনস্টলেশন / আপগ্রেডের ক্ষেত্রে কার্যকর হবে, কারণ .timerসরাসরি systemctl enableটাইমারগুলিতে ডিফল্ট ইউনিট ফাইলগুলিতে কোনও কনফিগার করা বিভাগ নেই । টাইমার / গুলি সক্ষম করতে এবং সেগুলি অক্ষম করতে লিংক / গুলি সরাতে
ম্যানুয়াল ln -s ../man-db.timer /usr/lib/systemd/system/multi-user.target.wants/man-db.timerবা ln -s ../updatedb.timer /usr/lib/systemd/system/multi-user.target.wants/updatedb.timerকমান্ডের প্রয়োজন হবে।

আপনি কাস্টম ইউনিট অগ্রাহ্য থাকতে পারে /etc/systemd/system/{man-,update}db.timer, প্রদানের WantedBy=multi-user.targetমধ্যে [Install]অধ্যায় করার অনুমতি systemtl enable|disable, কিন্তু লিঙ্ক /usr/lib/systemd/system/multi-user.target.wants/{man-,update}db.timerএখনও পুনরায় / ইনস্টলেশন / আপগ্রেড তে তৈরি করা হবে, কার্যকরীভাবে reenabling .timerগুলি।

আপনি systemctl mask man-db.timer updatedb.timerটাইমারগুলি মাস্ক করতে দৌড়াতে পারেন। সংশ্লিষ্ট পরিষেবাগুলি শুরু করার
জন্য ম্যানুয়ালি চালানো সম্ভব হলেও systemctl start man-db.service updatedb.service, আপনি টাইমারগুলি ম্যানুয়ালি শুরু করতে সক্ষম হবেন না, যে কারণেই ব্যবহারকারী নিজেরাই এটি করার প্রয়োজন / প্রয়োজন বলে মনে করবে।
এই কাজের মতো /etc/systemd/system/{man-,update}db.timerযদি প্রয়োজন হয় / প্রয়োজন হয় তবে কাস্টম ইউনিট ফাইলগুলিকে ওভাররাইড করার অনুমতি দেয় না , কারণ সিস্টেমডকে /dev/nullএকটি মুখোশযুক্ত ইউনিটকে চিহ্নিত করতে প্রতীকী লিঙ্কের সাথে তাদের প্রতিস্থাপন করতে হবে।

মাস্কিং হ'ল স্বল্পতম হস্তক্ষেপ বলে মনে হচ্ছে।
আমি /usr/lib/systemd/system/multi-user.target.wants/{man-,update}db.timerপ্রতিটি আপগ্রেডের পরে ম্যানুয়ালি মুছে ফেলা এবং ম্যানুয়াল সক্ষম / অক্ষম করতে সক্ষম করার সাথে /etc/systemd/system/{man-,update}db.timerএকটি [Install]বিভাগ থাকা ওভাররাইডিং ইউনিট ফাইলগুলি পছন্দ করি ।WantedBy=multi-user.targetsystemctl

দুর্ভাগ্যক্রমে, এর চারপাশে কোনও সাধারণ কাজ নেই, যা এই মুহুর্তে আমি কমপক্ষে ভাবতে পারি।
এটি অনুমান করে যে প্যাকেজগুলি man-db, mlocateসিস্টেমে ইনস্টল করার জন্য প্রয়োজনীয় / প্রয়োজনীয়: তাদের অপসারণ পছন্দসই / দরকারী সমাধান হবে না।

এটিও দেখুন: https://www.reddit.com/r/archlinux/comments/36fqzh/updatedbservice_and_mandbservice_increases_boot/

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