ডিরেক্টরি আকার সঙ্কুচিত / পুনরায় সেট করবেন?


11

ডিরেক্টরি এন্ট্রি সঙ্কুচিত করার উপায় আছে?

আমার ডোভকোট মাইল্ডির ডিরেক্টরিগুলি ডিফল্ট 4096 থেকে বেশ কয়েকটি মেগায় আকারে বেড়েছে এবং এটি ডিস্ক কোটার সাথে বিশৃঙ্খলা করছে।

আমি খুঁজে পেয়েছি যে একমাত্র উপায়, ডিরেক্টরি মুছে ফেলা এবং পুনরায় তৈরি করা। আমি আশা করছি যে কোথাও একটি যাদুবিদ্যার ফাংশন আছে - আমি হাতে-কোডেড এসেম্বেলারকে ব্যতীত কোনও কিছুর জন্য উন্মুক্ত।

সম্পাদনা করুন: উত্তরোত্তর জন্য, নির্দেশিকা সন্ধান করতে> 4096:

 find / -type d -size +4k -printf "%s\t%p\t%i\n" | sort -nr

উত্তর:


6

লক্ষ লক্ষ ফাইল সহ একটি ডিরেক্টরিতে আরএম দেখুন ; স্পর্শকাতরভাবে সম্পর্কিত, তবে আমরা সেখানে এটি নিয়ে আলোচনা করব।

আমি যতদূর সচেতন, কমপক্ষে ext2 / 3 এ, না, তাদের মুছে ফেলতে + পুনঃনির্ধারণের সংক্ষিপ্ত করার কোনও (অনলাইন) উপায় নেই। আনমাউন্টড, বেশ কয়েকটি উত্স প্রস্তাবিত e2fsck -Dকাজ করতে পারে, যদিও আমি এই বিকল্পটির সাথে কোনও ব্যক্তিগত অভিজ্ঞতা দাবি করতে পারি না।

আরও পড়ার জন্য কিছু উল্লেখ:


1
প্রথম লিঙ্কটি বিশেষভাবে সহায়ক ছিল: এটি আমার সমস্যাটি সুনির্দিষ্টভাবে সমাধান করেছিল (মেল সার্ভার), এবং টেড
টসো

3

আমাকে সম্প্রতি একটি এনএফএস ডিরেক্টরি মুছে ফেলার পরে এর আকার সঙ্কুচিত করতে পুনরায় তৈরি করতে হয়েছিল। প্রক্রিয়াটিতে, আমি আরএসসিএনসি এবং হার্ড লিঙ্কগুলি ব্যবহার করে এটি করার জন্য মোটামুটি দক্ষ উপায় খুঁজে পেয়েছি। এখনও একই বিষয়বস্তু সহ ডিরেক্টরিটি পুনরায় তৈরি করার লক্ষ্যটি সম্পাদন করার সময় এই পদ্ধতিটি প্রকৃত ফাইলগুলি অনুলিপি করা এড়ানো যায়।

যেহেতু আমাদের রক্ষণাবেক্ষণ উইন্ডো চলাকালীন এই অপারেশনটি করার জন্য আমাদের ডাউনটাইম নেওয়া দরকার, তাই পুনর্নির্মাণ ডিরেক্টরিটি যত তাড়াতাড়ি সম্ভব উপলব্ধ করা আমাদের জন্য গুরুত্বপূর্ণ ছিল। যদি আপনার কাছে সরলতা আরও গুরুত্বপূর্ণ হয় তবে উত্স ডিরেক্টরিতে প্রথম মুভ কমান্ডটি একটি 'rm -rf' এ পরিবর্তন করুন এবং অন্য 'rm -rf' কমান্ডটি এড়িয়ে যান।

আমি এই আদেশগুলি বৃহত্তর প্রক্রিয়া থেকে উত্তোলন করেছি, এবং ডিরেক্টরিগুলির নামগুলি বিমূর্ত করেছি, তাই যদি আমি অনুবাদটিতে কোনও ভুল করে থাকি তবে দুঃখিত ologies

mkdir /tmp/holding_dir/
rsync -ai --delete --link-dest=/path/to/source_dir/ /path/to/source_dir/ /tmp/holding_dir/
mv /path/to/source_dir/ /tmp/deleteme/
mv /tmp/holding_dir/ /path/to/source_dir/

তারপরে, আমরা ডিরেক্টরিটি সরিয়ে ফেলি। আকারের উপর নির্ভর করে এটি করার জন্য আপনাকে আরও পরিশীলিত কৌশল ব্যবহার করতে হতে পারে। উদাহরণস্বরূপ, এই ডিরেক্টরিতে একটি খালি ডিরেক্টরি সিঙ্ক করতে --delet পতাকা সহ rsync ব্যবহার করা আরও কার্যকর হতে পারে।

rm -rf /tmp/deleteme/

2

আমি এটি এই মত করব।

cp -aloldir newdir && mvolddir টেম্পনাম && mvnewdir olddir && rm -rtempname

যেখানে olddir ডিরেক্টরি আপনি সঙ্কুচিত করতে চান newdir এবং tempname অস্থায়ী ফাইলের নামের দ্বারা

cp -alnewdirওল্ডডিরের লিঙ্ক তৈরি করে এবং পরবর্তী তিনটি কমান্ড এগুলিকে newdir দিয়ে অদলবদল করে এবং পরিষ্কার করে।


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