এখনই মুছে ফেলা ফাইলগুলি থেকে স্থান ফাঁকা করতে fs বলুন


73

কার্নেলকে এখন ফ্রি ডিস্কের জায়গা ফিরিয়ে দেওয়ার জন্য কি কোনও উপায় আছে? / প্রো / / তে কোনও কিছুর লেখার মতো? Ext4 সহ উবুন্টু ১১.১০ ব্যবহার করা হচ্ছে।

এটি সম্ভবত একটি পুরানো এবং খুব বারবার থিম theme 0 স্পেসটি হিট করার পরে কেবলমাত্র লক্ষ্য করা গেছে যখন আমার সম্পাদক আমার কাছে খোলা সোর্স কোড ফাইলগুলি সংরক্ষণ করতে পারেন নি, যা আমার ভয়াবহতার কাছে এখন ফোল্ডার তালিকায় 0 বাইট আকারের আছে, আমি মুছে ফেলার জন্য গিয়েছিলাম।

আমি ব্যবহারকারী এবং মূল থেকে উভয়ই বড় ফাইলের 100 টি এমবি মুছে ফেলেছি এবং কিছু হার্ডলিংকও করেছি।

আমি আগে apt-get clean/ ভার / ক্যাশে / অ্যাপটি / সংরক্ষণাগারগুলিতে 900MB এরও বেশি ছিলাম, এখন কেবল 108KB রয়েছে:

# du
108 /var/cache/apt/archives

এক ঘন্টা পরে এখনও কোনও ফাঁকা জায়গা নেই এবং সম্পাদকে খোলা আমার মূল্যবান ফাইলগুলি সংরক্ষণ করতে পারে না, তবে নীচের বৈষম্যটি লক্ষ্য করুন:

# sync; df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda4             13915072  13304004         0 100% /

কোনও পরামর্শ? আমি কয়েকটি পরিষেবা / প্রক্রিয়া বন্ধ করে দিয়েছি তবে কীভাবে সক্রিয়ভাবে ডিস্কের স্থান খাচ্ছে তা কীভাবে পরীক্ষা করবেন তা নিশ্চিত নই।

অধিক তথ্য

# dumpe2fs  /dev/sda4
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              884736
Block count:              3534300
Reserved block count:     176715
Free blocks:              422679
Free inodes:              520239
First block:              0
Block size:               4096
Fragment size:            4096

4
ফাইল সিস্টেমটি অবিলম্বে স্থানটি মুক্ত করে। তবে ext এর মূল-সংরক্ষিত ব্লকগুলির বৈশিষ্ট্য [২৩৪] এবং কার্নেল কীভাবে মুক্ত ফাইল সংরক্ষণ করে তা হারিয়ে যাওয়া স্থানের চেহারা দিতে পারে।
হামু

আপনার যদি বেশ কয়েকটি ফাইল সিস্টেম (প্যাটিশন) থাকে তবে একটিতে স্থান খালি করা অন্য একটিতে কোনও ভাল করতে পারে না।
ভনব্র্যান্ড

"সংরক্ষিত" 5Go ব্লকগুলি পুনরায় দাবি করার আগে কেন আমি পার্টিশনটি পূরণ করতে পেরেছিলাম?
পিএসডিডিপি

উত্তর:


116

lsofফাইলগুলি খোলা আছে কিনা তা পরীক্ষা করে দেখুন। এগুলি বন্ধ না করা পর্যন্ত স্থান মুক্ত করা হবে না।

sudo /usr/sbin/lsof | grep deleted

কোন মুছে ফেলা ফাইল এখনও খোলা রাখা আছে তা আপনাকে বলবে।


ভাল. আমাকে mysqld/ টিএমপি-তে কিছু লক দেখিয়েছে , কিন্তু apport-gt/ var / lib / অ্যাপটি / তালিকা / আংশিক / এ দৃশ্যত জমে থাকা বিলুপ্তপ্রায় ফাইলগুলির অনেকগুলি ব্যবহার। সুতরাং আমি সম্ভবত killall apport-gtএটি তদন্ত করতে পারে ।
মার্কোস

1
নিকটতম উত্তর হিসাবে চিহ্নিত করা, যদিও ফাইল হ্যান্ডলগুলি / প্রক্রিয়াগুলি ব্যবহার করে অবিলম্বে স্থানটি "প্রত্যাবর্তন" করার পরে অবিলম্বে কখনই আসেনি। অন্যান্য কার্নেল / প্রোক / এফএস-ভিত্তিক পদ্ধতির সন্ধান করা হচ্ছে।
মার্কোস

18
আপনি এটিও ব্যবহার করতে পারেন lsof +L1(লিঙ্কযুক্ত মুক্ত ফাইল নির্বাচন করুন)।
মার্টিন ফিদো

এই উত্তরের তথ্যটি সঠিক, তবে ওপিটির সমস্যাটি সম্ভবত এটি দ্বারা নয় বরং মূল সংরক্ষিত স্থান (যা অন্য একটি উত্তরের ঠিকানা দিয়েছিল) দ্বারা সৃষ্ট হয়েছিল।
মার্সেলেম

37

ব্যবহার করুন lsofমোছা হয়েছে, কিন্তু খোলা, ফাইল এখনও গ্রাসকারী স্থান দেখুন:

lsof | grep deleted | grep etilqs_1IlrBRwsveCCxId
chrome     3446       user  128u      REG              253,2              16400       2364626 /var/tmp/etilqs_1IlrBRwsveCCxId (deleted)  

এন্ট্রি খুঁজুন /proc/<pid>/fd/যে filehandle করার cooresponds:

ls -l /proc/3446/fd/etilqs_1IlrBRwsveCCxId
lrwx------. 1 user unix 64 Feb 11 15:31 128 -> /var/tmp/etilqs_1IlrBRwsveCCxId (deleted)

এখন, কেবল cat /dev/nullএফডি তে:

cat /dev/null > /proc/3446/fd/128

নোট করুন যে ইনোডটি এখনও খোলা আছে, তবে এখন এটি 0 দৈর্ঘ্য

chrome     3446       user  128u      REG              253,2         0    2364626 /var/tmp/etilqs_1IlrBRwsveCCxId (deleted)

5
catকাটা কাটা জন্য অতিমাত্রায় ব্যবহার । বোর্ন শেল, ঠিক > /proc/3446/fd/128কি করতে হবে।
200_সুক্রিয়

2
আপনার প্রোগ্রামটি ভবিষ্যতে ফাইলের যে কোনও অংশটি পৃষ্ঠা ক্যাশে উপলব্ধ থাকতে পারে বা নাও পেতে পারে তা যদি পুনরায় পড়ার আশা করা হয় তবে এটি করবেন না।
মাইকেল আর। হাইনস

13

dfroot(এমনকি যখন চালানো হয় root) এর জন্য সংরক্ষিত স্থান দেখায় না :

# df -h
Filesystem            Size  Used Avail Use% Mounted on
...
/dev/optvol           625G  607G     0 100% /opt
...

"সংরক্ষিত ব্লক শতাংশ" কীভাবে পরিবর্তন করবেন

  1. সংরক্ষিত স্থান 4% এ কমিয়ে দিন

    # tune2fs -m4 /dev/sda4

df -h এখন 45 এম ফ্রি দেখিয়েছে showed

  1. আমার ফাইলগুলি দ্রুত সংরক্ষণ করে
  2. এটিকে 5% এ ফিরিয়ে দিন

    # tune2fs -m5 /dev/sda4


2
মূল সংরক্ষিত স্থানের জন্য আজকাল প্রায় সবসময় খুব বড়। আপনি এটি কিছু শতাংশ কমিয়ে আনতে পারেন। dfসাধারণ ব্যবহারকারীর ব্যবহারযোগ্য স্থানের জন্য প্রদর্শন করে। যেমন এপটি রুট হিসাবে চালায়, সংরক্ষিত স্থানটি কেবলমাত্র অ-রুট ব্যবহারকারীদের দ্বারা সৃষ্ট ফিল-আপগুলি থেকে রক্ষা করতে কার্যকর হয় (= সাধারণ ব্যবহারকারী এবং পরিষেবা যার নিজস্ব ব্যবহারকারী রয়েছে)।
জোফেল

আমি রাজী; একটি mkfsএই দিন যেমন রিজার্ভ করা উচিত নয়। 5% বা 300MB, যেটি কম । কেবলমাত্র আমার কিছু সার্ভারগুলিকে 2% এ পুনরায় টিউন করে জিবিগুলি ফিরিয়ে দিয়েছে!
মার্কোস

3
@ জোফেল, না, তা নয়। আপনি যে কোনও সময় 90% ব্যবহারের উপরে চলে গেলে আপনার প্রচুর খণ্ডন শুরু হয়। আপনার আরও কিছু স্থান খালি করা দরকার, 100% ব্যবহারের কাছাকাছি না।
psusi

@psusi আপনি সত্য, আপনার মন্তব্যের জন্য ধন্যবাদ। তবে সাধারণ ব্যবহারকারীর হিসাবে প্রায় সমস্ত উপলব্ধ স্থান (অস্থায়ী) ব্যবহারের সুযোগটি সত্যই ব্যবহারিক হতে পারে এবং এক্সট 4
সহ

7

উবুন্টুতে, আপনি যদি ট্র্যাশ বিন ব্যবহার করে ফাইলগুলি মুছে ফেলে থাকেন তবে আপনার ফাইলগুলি সম্পূর্ণরূপে অপসারণ না হওয়ার চেয়ে বেশি।

আপনার ট্র্যাশ খালি করার পরেও আপনার ফাইলগুলি ~/.local/share/Trash/expungedএকটি রিবুট হওয়ার পরে এবং আরও দীর্ঘতর অবধি থাকবে ।

এর জন্য আমি কোনও ভাল কারণ খুঁজে পাইনি, তবে আমি যদি স্থানটি সরিয়ে ফেলে থাকি তবে আমি সবসময় ম্যানুয়ালি rmনিষ্ক্রিয় হওয়া ট্র্যাশ ফাইলগুলি পাই ।


1
ভাল যুক্তি. যদিও আমি কমান্ড লাইনের দ্বারা বেঁচে থাকা এবং মরে যাওয়া তাদের মধ্যে একজন এবং খুব কমই গ্রাফিকাল ফাইল ম্যানেজার ব্যবহার করি। লুকানোর জায়গা হিসাবে এখনও বিচ্ছিন্ন ফোল্ডারটি লক্ষ্য করা যায় নি - একটি খালি ট্র্যাশ ক্লিক সর্বদা চূড়ান্ত ছিল এবং যখন প্রয়োজন হবে তখন আমার ডিস্কের স্থানটি ফিরিয়ে দিয়েছে।
মার্কোস

6
sudo lsof | grep "(deleted)$" | sed -re 's/^\S+\s+(\S+)\s+\S+\s+([0-9]+).*/\1\/fd\/\2/' | while read file; do sudo bash -c ": > /proc/$file"; done

ব্যাখ্যা: কেবল মুছে ফেলা ফাইলগুলি বের করতে
গ্রেপ lsofআউটপুট। সেড প্রতিটি লাইন থেকে প্রক্রিয়া আইডি এবং ফাইলডেস্কিটার আইডি বের করুন এবং বিন্যাসে একটি স্ট্রিং তৈরি করুন {pid}/fd/{fid}। লুপ এবং আউটপুট প্রতিটি ফাইলের কিছুই না, এগুলি খালি রেখে দেয়।


3
অপ্রত্যাশিত টোকেনের কাছে আমি একটি ত্রুটি পেয়েছি
synt

5

আমি ভাবছি যে syncএখানে কোনও উপকার হয় কিনা - তবে এটি হওয়া উচিত নয়, বেশিরভাগ ("অনেক"?) সিস্টেমে আইআইআরসি হিসাবে, ফাইল সিস্টেমগুলি প্রতি 30 টিতে সিঙ্ক হয়।

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

দুটি কারণ (আপনার লিঙ্ক করা প্রশ্নে এর মধ্যে একটি নির্দেশিত) যার ফলে মুছে ফেলা ফাইলগুলিকে কোনও স্থান মুক্ত করতে পারে না

  • যে ফাইলগুলি আসলে মুছে ফেলা হয়নি: আপনি এমন কোনও ফাইল মুছে ফেলেছেন যা অন্য কোথাও হার্ডলিঙ্কযুক্ত (আরও স্পষ্টতই, আপনি একাধিক লিঙ্কযুক্ত unlink()একটি ফাইল সম্পাদনা করেছেন)
  • যে ফাইল এখনও খোলা আছে: ফাইল খুলুন ব্যবহার করে, ভাল, ফাইল bookkept হয়, inodes নিজেদের, না ডিরেক্টরির এন্ট্রি, যদি আপনি এন্ট্রি মুছে দিন, inode সেখানে যতদিন এটি এখনও খোলা আছে যেমন থাকবে।

তবে এতগুলি ফাইলের সাথে কেন এমনটি হতে পারে তার সুনির্দিষ্ট কারণ আমি জানি না ...


syncকখনও সাহায্য করেনি। লগ হিসাবে, এটি একটি উবুন্টু সিস্টেম তাই এটি খুব বগি, তাই হ্যাঁ তারা সাধারণত গোলমাল হয়। apportপ্রায়শই মোতায়েন করা হচ্ছে কারণ প্রতি রাতের অ্যাপ্লিকেশন আপডেট আপডেট ক্র্যাশ করে, যদিও / ভার / ক্র্যাশটিতে কেবলমাত্র 77MB রয়েছে। এছাড়াও লক্ষ্য করা atdগেছে যে পুনরায় পুনরায় পুনরুক্তি সহ ভার / লগ / সিসলগ বন্যা হয়েছে atd[8892]: File a0015c0152ab76 is in wrong format - abortingসম্ভবত সম্ভবত যেহেতু / var / spool / ক্রোন / এটসপুলের কয়েকটি ফাইল সমস্ত 0 আকারের ছিল, ফলে সমস্যাটি অবশ্যই বিজ্ঞপ্তিযুক্ত
মার্কোস

1

CentOS 6.3 এছাড়াও-খালি-ট্র্যাশ-ক্যান-আসলে-খালি-ফাঁকা-ট্র্যাস-করতে পারে না। আমি দৌড়ে না আসা পর্যন্ত জায়গাটি পুনরায় দাবি করার কোনও উপায় খুঁজে পাইনি rm -rf ~/.local/share/Trash/expunged/। অনেক বেশি মাথা-চুলকানো হয়েছে।

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