লিনাক্স ফাইল সিস্টেম; ডিএফ ও ডু ব্যবহার করে আকার নির্ধারণের ক্ষেত্রে পার্থক্য


8

আমি যখন dfএটি চালায় তখন দেখায় যে রুট ডিভাইসটি পূর্ণ।

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.9G  9.4G     0 100% /

আমি inodeব্যবহারটি দেখেছি এবং রুট ডিভাইসের জন্য যথেষ্ট পরিমাণে জায়গা উপলব্ধ রয়েছে

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1               640K    103K    538K   16% /

কিন্তু যখন আমি চালানোর duকমান্ড এটা দেখায় আমি শুধু ব্যবহার করেছেন 2Gবাইরে 9.9G

ip-XXX-XXX-XXX-XXX:/$ du -xh --max-depth=1
14M ./etc
4.0K ./mnt
96K ./tmp
3.5M ./bin
0   ./sys
964K ./boot
4.0K ./srv
0   ./dev
55M ./lib
25M ./root
1.1G ./usr
4.0K ./opt
846M ./var
4.3M ./sbin
23M ./home
16K ./lost+found
0   ./proc
2.0G .

এটি কেবল আমাকে ক্রেজি এবং আকর্ষণীয়ও করে তোলে। এটি আমাদের জন্য বড় সমস্যা যেহেতু রুট ডিস্ক /পূর্ণ এবং আমাদের সাইটের কিছু ফাংশন ব্যর্থ হচ্ছে।

দয়া করে আমাকে এই সমস্যার সমাধান করতে (এছাড়াও বুঝতে) সহায়তা করুন।

ধন্যবাদ।



আপনার মতো @ গিলস বলেছিলেন, আমি দৌড়ে এসেছি du -x /এবং দেখি যে কেবল 2 জি ব্যবহার করা হয়েছে এবং আমি ইনোডের আকারটি গণনা করেছি যা 160M। এটি আমাকে জিনিসগুলি বুঝতে সহায়তা করেছে তবে আমি এই সমস্যাটি সমাধান করতে চাই।
রাকেশ শঙ্কর

আপনি কি duরুট হিসাবে চালানো হয়েছে? অন্যথায় এটি কেবল আপনার অ্যাক্সেস করতে পারে এমন ফাইলগুলির প্রতিবেদন করতে পারে।
গিলস 7

@ গিলস আমি হিসাবে চালাচ্ছিroot
রাকেশ সংকর

আমার কাছে দুর্দান্ত ncduপ্রোগ্রাম বাদে অন্য কিছু যুক্ত করার দরকার নেই , যা ডিস্কের ব্যবহারকে কল্পনা করতে সহায়তা করে।
রব

উত্তর:


4

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

dfএই ফাইলগুলির দ্বারা ব্যবহৃত স্থানটি দেখায় কারণ এটি কেবল ডিভাইসে কত পরিমাণ বরাদ্দ রয়েছে তা দেখায়, তবে duসেগুলি দেখতে পাবে না কারণ সেখানে কোনও সম্পর্কিত ডিরেক্টরি এন্ট্রি নেই।

"লুকানো" ব্যবহৃত জায়গাগুলি কেবল তখনই মুক্ত করা যায় যখন ফাইলগুলি মুছে ফেলা প্রসেসগুলি বন্ধ হয়ে যায়। আপনি এই প্রক্রিয়াটি fuserকমান্ডের সাহায্যে খুঁজে পেতে পারেন এবং সেগুলি শেষ করতে পারেন (বা অনেকগুলি ডিমেনের জন্য, কোনও খোলার ফাইলগুলি বন্ধ করে পুনরায় খোলার জন্য তাদেরকে একটি সংকেত প্রেরণ করুন)।


ধন্যবাদ, ভাল তথ্য, কিছু (আরও) আমি আজ বুঝতে পেরেছি a তবে একটি hiddenব্যবহৃত স্থান আবিষ্কার করার জন্য , আমি fuserএকটি প্রক্রিয়া দ্বারা ব্যবহার করা হলেও লিঙ্কযুক্ত না থাকা সমস্ত ফাইলগুলি দেখতে কমান্ডটি চালানোর চেষ্টা করি - আমি কোনও খুঁজে পেলাম না। আপনার কি এমন কোনও আদেশ বা নির্দেশ আছে যা আমাকে এটি সন্ধান করতে পরিচালিত করে? এটি আমি ব্যবহার করি সেই আদেশটিfuser -v -a /
রাকেশ শঙ্কর

লুকানো জায়গা থেকে মুক্তি পেতে আমাকে এটিকে পুনরায় চালু করতে হয়েছিল তবে আমি এই লুকানো ফাইলগুলি সরিয়ে দেওয়ার কোনও সঠিক সমাধান খুঁজে পাইনি।
রাকেশ শঙ্কর

1

এমন অনেক সময় ছিল যখন ডিস্কটি পূর্ণ হয়ে যায়, তখন এটি পুনরায় চালু / পুনর্নির্মাণ না হওয়া পর্যন্ত বিভ্রান্ত হতে পারে যে আপনি ডিস্কের অনেকগুলি ফাইল মুছে ফেলেছেন তবুও।


এটি কোনও প্রোডাকশন সাইট হওয়ায় আমি রিবুট করতে পারি না। তবে আমি এমন একটি সমাধান খুঁজছি যা এই গোপন স্থানটি খুঁজে পেতে এবং এটিকে ফিরিয়ে আনতে আমাকে সহায়তা করতে পারে।
রাকেশ শঙ্কর

এটি হয়ত উত্পাদন কিন্তু কখনও কখনও একটি রিবুট একমাত্র উত্তর। এটি আপনার রুট ডিস্ক হওয়ার দুর্ভাগ্য সমস্যা এবং এটিতে আপনার সমস্ত ওএস চালু রয়েছে OS যে কারণে অনেকে অন্যান্য ডিস্কে থাকা tmp, var, home ইত্যাদির ব্যবহারের পক্ষে সমর্থন করেন, কারণ তারা তখন পুনঃসামগ্রহযোগ্য হতে পারে। এটি আরও সাধারণ বলে মনে হচ্ছে যে ওএস বুঝতে পারে না যে রুট ডিস্কে স্থান উপলব্ধ।
বাগফিন্ডার

1

আমার পক্ষে, আমি কেবল ডিস্কের জায়গা ফিরে পেতে সিস্লোগড পুনরায় চালু করেছি। আমার 3 জিবি মিস ছিল! আমার সার্ভারটি 250 দিনের পুরানো ছিল এবং চলছে running


0

অ্যাপ্লিকেশন পুনরায় আরম্ভ না করেই জায়গা পরিষ্কারের উপায় রয়েছে। বিশদটি এখানে:

  1. ধরা যাক আপনার কাছে fooabc.log নামে একটি 2 জিবি ফাইল তৈরি এবং প্রক্রিয়া চলছে। এখন বলুন এই abc.log অন্য কারও দ্বারা মুছে ফেলা হয়েছে।

  2. fooপিড পান (123 বলুন)। সুতরাং /proc/123/fdদ্বারা ফাইল খোলার ফাইল তালিকা প্রদর্শন করবে foo। Abc.log সহ একটি মুছে ফেলা হিসাবে প্রদর্শিত হবে। fdঅ্যাব.লগের কথাটি 111 বলে নেওয়া যাক you আপনি যদি চালনা করেন তবে less /proc/123/fd/111এটি আপনাকে সমস্ত 2 জিবি ডেটা দেখায়।

  3. চালান echo " " > /proc/123/fd/111। এটি খালি স্ট্রিং সহ সামগ্রীগুলি ওভাররাইট করবে। এই আদেশের পরে যদি আপনি চেষ্টা করেন তবে dfএটি abc.log সাফ করে অতিরিক্ত 2 গিগাবাইট উদ্ধার করবে।

এটাই. আমি এটি সেন্টোজে চেষ্টা করেছি এবং এটি কাজ করে।


এটি জানতে একটি দরকারী জিনিস। তবে এটি প্রশ্নের উত্তর নয়।
আইজাক রবিনোভিচ

দুঃখিত, আমার উত্তরগুলি ডিস্কের জায়গা পরিষ্কার করার দিকে আরও লক্ষ্যযুক্ত ছিল যদি আপনি প্রক্রিয়া আইডিটি জানেন যে ফাইলটি মোছা হয়েছে। এই নির্দিষ্ট ক্ষেত্রে, আপনাকে / proc / [0-9] * / এফডি-তে সমস্ত ফাইলগুলি মুছে ফেলা উচিত, মুছে ফেলাগুলি গ্রেপ করুন এবং উপরে বর্ণিত যুক্তি অনুসরণ করতে হবে।
কৌস্তুব সাথে

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