একাধিক প্যাকেজগুলিতে আরপিএম এবং ভাগ করা লাইব্রেরিগুলির প্রকৃতি বিবেচনা করে আমি যে প্যাকেজগুলি ব্যবহার করি সেগুলির একটি তালিকা তৈরির পদ্ধতি গ্রহণ করব এবং এটি ইনস্টলড প্যাকেজগুলির তালিকার তুলনায় পৃথক। অব্যবহৃত প্যাকেজগুলি মুছে ফেলার মতো সুবিধা রয়েছে যেমন ডিস্কের স্থান মুক্ত করা, প্যাকেজগুলি হ্রাস করার সুবিধা যা সুবিধা বাড়ানোর সুবিধার্থে চেকসাম ডাটাবেস যেমন ওএসএসইসি, সহায়তা, ট্রিপওয়্যারের আকার হ্রাস করে।
অনুমান :
- সময় সক্রিয় করা হয়। আপনি যদি নোয়াটাইমের মাউন্ট অপশনটি ব্যবহার করছেন তবে ফাইলগুলির অ্যাক্সেসের সময় আপডেট হবে না এবং কোন ফাইল অ্যাক্সেস করা হয় তা নির্ধারণের জন্য ব্যবহার করা যাবে না। রাইটিং পেনাল্টি এড়ানোর জন্য নোয়াটিমের জন্য একটি ফাইল সিস্টেমে সেট করা সাধারণ।
দাবি অস্বীকার: এই পদ্ধতির কিছু ঝুঁকি রয়েছে যা আপনার বিবেচনা করা উচিত। উদাহরণস্বরূপ, যদি আপনার সার্ভার কয়েক বছর ধরে থাকে তবে সেখানে ডেমন চলতে পারে যা সার্ভার / ডেমন শুরুর সময় থেকে আপনি অ্যাক্সেস করেননি এমন পুরানো ফাইলগুলি ব্যবহার করে। ফ্যাক্টর হওয়ার জন্য প্রচুর পরিমাণে অন্যান্য ঝুঁকি রয়েছে, তবে আপনি তাই জিজ্ঞাসা করেছিলেন যে এখানে একটি পদ্ধতি শুরু করা যেতে পারে। এটি এখনও একটি মানুষের নিরাপদে অপসারণ করা যেতে পারে তা নির্ধারণ করা প্রয়োজন। আপনার এই পদ্ধতিটি ব্যবহার করে প্যাকেজগুলি অপসারণ স্বয়ংক্রিয়ভাবে করা উচিত নয়। এটি কেবলমাত্র শিক্ষামূলক ব্যবহারের জন্য।
ইনস্টল করা সমস্ত আরপিএমের একটি তালিকা তৈরি করুন।
rpm -qa | sort -n > /dev/shm/all.txt
সম্প্রতি অ্যাক্সেস করা ফাইলগুলির একটি তালিকা তৈরি করুন এবং একটি গণনা সংরক্ষণ করুন। আমরা নতুন বছর ঘুরছি, সুতরাং আপনি গত বছরটি দেখতে চাইতে পারেন।
YEAR=`date -d "one year ago" '+%Y'`
# YEAR=2014
OFS="$IFS";IFS=$'\n';stat --printf="%y %n\n" $(ls -tr $(find /bin /boot /etc /lib /lib64 /sbin /usr /var -type f ! -name "*~" ! -name "*.gz" ! -name "*.tar")) | grep ^${YEAR} | awk {'print $NF'} > /dev/shm/recent.txt;IFS="$OFS";
FILECOUNT=`egrep -c ^.+ /dev/shm/recent.txt`
রাম ডিস্কে আমাদের আরপিএম ডাটাবেস অনুলিপি করুন যাতে আমরা সার্ভারটি অপব্যবহার করি না। আপনার কমপক্ষে 100 এমবি নিখরচায় রয়েছে তা নিশ্চিত করুন। যেমন df -Ph / dev / shm
mkdir --mode=0700 /dev/shm/rpmdb
rsync -a /var/lib/rpm/. /dev/shm/rpmdb/.
আমাদের সাম্প্রতিক টেক্সট তালিকার সাথে সম্পর্কিত আরপিএমের সন্ধান করুন। এটি একটি সময় নিতে হবে। আমি বাজি ধরছি যে কেউ এই পদক্ষেপটি করার জন্য আরও দক্ষ, দ্রুত এবং চতুর উপায়গুলি খুঁজে পেতে পারে। আমি এটি একটি স্ক্রিন সেশনে করব।
renice 19 -p $$ > /dev/null 2>&1
printf "${FILECOUNT} files to iterate through."
> /dev/shm/recent_packages.txt
for file in `cat /dev/shm/recent.txt`
do
rpm --dbpath /dev/shm/rpmdb -q --whatprovides ${file} >> /dev/shm/recent_packages.txt 2>/dev/null
# optional status indicator.
printf "."
done
অনুসন্ধান থেকে RPM প্যাকেজের মালিকানাধীন ফাইলগুলি আমাদের তালিকা থেকে সরান।
grep -v "not owned by" /dev/shm/recent_packages.txt | sort -n | uniq > /dev/shm/recent_sorted.txt
আউটপুট পার্থক্য। আবার এটি নিজে থেকে পুরোপুরি কার্যকর হয় না। এই প্যাকেজগুলি থেকে কেন ফাইল অ্যাক্সেস করা হয়নি তা আপনাকে নির্ধারণ করতে হবে।
diff -u /dev/shm/recent_sorted.txt /dev/shm/all.txt | grep '^+'
আপনি RPM -Ql প্যাকেজ সহ RPM এর বিষয়বস্তু তালিকাভুক্ত করতে পারেন । আমার ভিএম এর একটিতে আউটপুট এখানে। আপনি দেখতে পাচ্ছেন, এটি আমার ক্ষেত্রে সম্পূর্ণ কার্যকর নয়।
+++ /dev/shm/all.txt 2014-12-31 20:50:06.521227281 +0000
+basesystem-10.0-4.el6.noarch
+dhcp-common-4.1.1-43.P1.el6.centos.x86_64
+filesystem-2.4.30-3.el6.x86_64
+rootfiles-8.1-6.1.el6.noarch
এই ফাইলগুলি কিছুক্ষণের মধ্যে অ্যাক্সেস করা হয়নি সত্ত্বেও, আমাকে ফাইল সিস্টেম এবং বেস সিস্টেমটি প্রায় রাখার প্রয়োজন। দ্রষ্টব্য: কিছু সময় আমি noatime সক্ষম
আমি dhcp- সাধারণ এবং এর সাথে সম্পর্কিত dhclient প্যাকেজটি সরিয়েছি, যেহেতু আমার নির্দিষ্ট ব্যবহারের ক্ষেত্রে আমার কখনই DHCP দরকার হবে না। আমি বুঝতে পারি যে এই পদ্ধতিটি পুরোপুরি দক্ষ নয়, তবে এটি আপনাকে আপনার সার্ভারগুলির প্রতিটি অনন্য ভূমিকার জন্য একটি সূচনা পয়েন্ট দেবে। শুভ নব বর্ষ!