ইনোডগুলি কোথায় ব্যবহৃত হচ্ছে তা সন্ধান করুন


189

সুতরাং আমি আমাদের বাক্সগুলির মধ্যে একটিতে আমাদের মনিটরিং সিস্টেমের কাছ থেকে একটি সতর্কতা পেয়েছি যে একটি ফাইল সিস্টেমে ফ্রি আইনের সংখ্যা কম হচ্ছে।

df -i আউটপুট এটি দেখায়:

Filesystem       Inodes  IUsed    IFree IUse% Mounted on
/dev/xvda1       524288 422613   101675   81% /

যেমন আপনি দেখতে পাচ্ছেন, রুট পার্টিশনেরটিতে এর আইওডের 81% ব্যবহার রয়েছে।
আমি সন্দেহ করি তারা সবাই একক ডিরেক্টরিতে ব্যবহৃত হচ্ছে। তবে সেখানে আমি কীভাবে খুঁজে পাব?

উত্তর:


214

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

মূলত ফাইল সিস্টেমে প্রতিটি ফাইলের জন্য একটি ইনোড ব্যবহৃত হয়। তাই ইনোডগুলি চালিয়ে যাওয়ার অর্থ সাধারণত আপনি প্রচুর ছোট ফাইল পেয়ে গেছেন। সুতরাং প্রশ্নটি সত্যিই হয়ে ওঠে, "কোন ডিরেক্টরিতে এটির একটি বিশাল সংখ্যক ফাইল রয়েছে?"

এই ক্ষেত্রে, আমরা যে ফাইল সিস্টেমটি যত্ন করি তা হ'ল মূল ফাইল সিস্টেম /, তাই আমরা নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারি:

find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n

এটি সেই ডিরেক্টরিতে ফাইল সংখ্যার (এবং উপ-ডিরেক্টরি) উপসর্গযুক্ত ফাইল সিস্টেমের প্রতিটি ডিরেক্টরিের একটি তালিকা ডাম্প করবে। সুতরাং বৃহত্তম সংখ্যক ফাইলের ডিরেক্টরিটি নীচে থাকবে।

আমার ক্ষেত্রে, এটি নিম্নলিখিতগুলি পরিবর্তন করে:

   1202 /usr/share/man/man1
   2714 /usr/share/man/man3
   2826 /var/lib/dpkg/info
 306588 /var/spool/postfix/maildrop

সুতরাং মূলত /var/spool/postfix/maildropসমস্ত ইনোড গ্রহণ করা হয়।

দ্রষ্টব্য, এই উত্তরের তিনটি সতর্কতা রয়েছে যা আমি ভাবতে পারি। এটি পথে নতুন লাইনের সাথে কোনও কিছুই সঠিকভাবে পরিচালনা করে না। আমি জানি আমার ফাইলসিস্টেম নতুন লাইন দিয়ে কোন ফাইল আছে, এবং যেহেতু এই শুধুমাত্র মানুষের ব্যবহার জন্য ব্যবহৃত হচ্ছে, সম্ভাব্য সমস্যা সমাধানে অধিকারী না হয় (এবং এক সবসময় প্রতিস্থাপন করতে পারেন \nসঙ্গে \0এবং ব্যবহার sort -zউপরে)। ফাইলগুলি বিশাল সংখ্যক ডিরেক্টরিতে ছড়িয়ে দেওয়া থাকলে এটি পরিচালনাও করে না। যদিও এটি সম্ভবত না, তাই আমি ঝুঁকিটিকে গ্রহণযোগ্য বলে মনে করি। এটি একই ফাইলের হার্ড লিঙ্কগুলিও গণনা করবে (সুতরাং কেবলমাত্র একটি ইনোড ব্যবহার করে) বেশ কয়েকবার। আবার, মিথ্যা ইতিবাচক দেওয়ার সম্ভাবনা নেই


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

for i in `find . -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n

আমরা যদি পরিবর্তে এটি পরিবর্তন

for i in `find . -xdev -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n

যদিও /mnt/fooএটি একটি মাউন্ট, এটি মূল ফাইল সিস্টেমেরও একটি ডিরেক্টরি, তাই এটি চালু হবে find . -mount -type dএবং তারপরে এটি ls -a $iমাউন্টটিতে ডুববে।

findআমার উত্তর পরিবর্তে মাউন্ট উপর প্রতি একক ফাইলের ডিরেক্টরি তালিকাবদ্ধ করে। সুতরাং মূলত একটি ফাইল কাঠামো যেমন:

/foo/bar
/foo/baz
/pop/tart

আমরা শেষ পর্যন্ত

/foo
/foo
/pop

সুতরাং আমরা কেবল নকল লাইন সংখ্যা গণনা করতে হবে।


2
@ মোহসেনপাহলেভানজাদেহ যে আমার উত্তরের অংশ নয়, আমি কেন এই প্রশ্নের একটি সাধারণ উত্তর হওয়ায় সমাধানটি আমি অপছন্দ করি তা নিয়ে মন্তব্য করছি।
প্যাট্রিক

7
বাইন্ড মাউন্ট ব্যবহার করা অন্য ফাইল সিস্টেমগুলি অনুসন্ধান এড়ানোর জন্য আরও শক্তিশালী উপায় কারণ এটি মাউন্ট পয়েন্টগুলির নীচে ফাইলগুলিতে অ্যাক্সেসের অনুমতি দেয়। উদাহরণস্বরূপ, কল্পনা করুন আমি এর অধীনে 300,000 ফাইল তৈরি করি /tmpএবং পরে সিস্টেমটি একটি টিএমপিএফ মাউন্ট করার জন্য কনফিগার করা হয় /tmp। তারপরে আপনি findএকাই ফাইলগুলি সন্ধান করতে পারবেন না। অপছন্দনীয় সেনেরিও, তবে লক্ষণীয়।
গ্রামীণ

2
দু'টি কাজই কেবল বাছাই করতে হয়েছিল কারণ আউটপুট পর্যাপ্ত পরিমাণে বড় হওয়ার পরে বাছাইয়ের জন্য একটি ফাইল তৈরি করা দরকার যা আমি ইনোডের 100% ব্যবহার হিট করার পরে সম্ভব হয়নি।
কিওয়ার্টজগুই

1
নোটটি -printfখুঁজে পেতে জিএনইউ এক্সটেনশন হিসাবে উপস্থিত বলে মনে হয়, কারণ ওএস এক্সে উপলব্ধ বিএসডি সংস্করণ এটি সমর্থন করে না।
জিওনগ চিয়ামিভ

1
সমস্ত ফাইল একক ডিরেক্টরিতে রয়েছে এমন অনুমান করা একটি মুশকিল। অনেকগুলি প্রোগ্রাম জানে যে একটি ডিরেক্টরিতে অনেকগুলি ফাইলের কার্যকারিতা খারাপ থাকে এবং এভাবে হ্যাশের এক বা দুটি স্তরের ডিরেক্টরি হ্যাশ হয়
প্লাজমাএইচএইচ

26

এটি জিজ্ঞাসকের নির্দেশে এখান থেকে পোস্ট করা হয়েছে :

du --inodes -S | sort -rh | sed -n \
        '1,50{/^.\{71\}/s/^\(.\{30\}\).*\(.\{37\}\)$/\1...\2/;p}'

এবং আপনি যদি একই ফাইল সিস্টেমে থাকতে চান তবে:

du --inodes -xS

এখানে কিছু উদাহরণ আউটপুট:

15K     /usr/share/man/man3
4.0K    /usr/lib
3.6K    /usr/bin
2.4K    /usr/share/man/man1
1.9K    /usr/share/fonts/75dpi
...
519     /usr/lib/python2.7/site-packages/bzrlib
516     /usr/include/KDE
498     /usr/include/qt/QtCore
487     /usr/lib/modules/3.13.6-2-MANJARO/build/include/config
484     /usr/src/linux-3.12.14-2-MANJARO/include/config

এখন এলএস এর সাথে:

বেশ কয়েকটি ব্যক্তি উল্লেখ করেছেন যে তাদের কাছে আপ টু ডেট কোরিউটিল নেই এবং --inodes বিকল্প তাদের কাছে উপলভ্য নয়। সুতরাং, এখানে ls:

ls ~/test -AiR1U | 
sed -rn '/^[./]/{h;n;};G;
    s|^ *([0-9][0-9]*)[^0-9][^/]*([~./].*):|\1:\2|p' | 
sort -t : -uk1.1,1n |
cut -d: -f2 | sort -V |
uniq -c |sort -rn | head -n10

যদি আপনি কৌতূহলী হন, তবে সেই বিরক্তিকর বিটটির হৃদয় ও আত্মা প্রতিটি পুনরাবৃত্ত অনুসন্ধানের ফলাফলের ডিরেক্টরি ডিরেক্টরিতে এটি খুঁজে পাওয়া যায় regexবলে প্রতিস্থাপন করে । সেখান থেকে পুনরাবৃত্ত ইনোড সংখ্যাগুলি বার করে দেওয়ার পরে পুনরাবৃত্ত ডিরেক্টরিগুলির নাম গণনা করা এবং সেই অনুসারে বাছাইয়ের বিষয়টি।filenamels's

-Uবিকল্প বাছাই বিশেষত সহায়ক এটি বিশেষভাবে হয় না বাছা, এবং পরিবর্তে মূল অনুক্রমে ডিরেক্টরির তালিকা উপস্থাপন -, বা, অন্য কথায় দ্বারা inodeসংখ্যা।

এবং অবশ্যই -1এটি অবিশ্বাস্যরূপে সহায়ক যে এটি লাইন প্রতি একক ফলাফল নিশ্চিত করে, সম্ভবত ফাইলের নামগুলিতে অন্তর্ভুক্ত না হওয়া বা অন্যান্য তালিকাভুক্ত দুর্ভাগ্য সমস্যা যা আপনি যখন কোনও তালিকার বিশ্লেষণের চেষ্টা করছেন তখনই ঘটতে পারে।

এবং অবশ্যই -Aসকলের জন্য এবং -iইনোডের -Rজন্য এবং পুনরাবৃত্তির জন্য এবং এটিই এর দীর্ঘ এবং সংক্ষিপ্ত।

এর অন্তর্নিহিত পদ্ধতিটি হ'ল আমি এলএস এর ফাইলের প্রত্যেকটি নামকে সেডে ডিরেক্টরিযুক্ত নামের সাথে প্রতিস্থাপন করব। তা থেকে অনুসরণ করে ... ঠিক আছে, আমি নিজেই কিছুটা অস্পষ্ট। আমি মোটামুটি নিশ্চিত যে এটি সঠিকভাবে ফাইলগুলি গণনা করছে, আপনি এখানে দেখতে পারেন:

% _ls_i ~/test
> 100 /home/mikeserv/test/realdir
>   2 /home/mikeserv/test
>   1 /home/mikeserv/test/linkdir

এটি আমাকে duকমান্ডের বেশ অভিন্ন ফলাফল প্রদান করছে :

ঢাবি:

15K     /usr/share/man/man3
4.0K    /usr/lib
3.6K    /usr/bin
2.4K    /usr/share/man/man1
1.9K    /usr/share/fonts/75dpi
1.9K    /usr/share/fonts/100dpi
1.9K    /usr/share/doc/arch-wiki-markdown
1.6K    /usr/share/fonts/TTF
1.6K    /usr/share/dolphin-emu/sys/GameSettings
1.6K    /usr/share/doc/efl/html

নির্মিত LS:

14686   /usr/share/man/man3:
4322    /usr/lib:
3653    /usr/bin:
2457    /usr/share/man/man1:
1897    /usr/share/fonts/100dpi:
1897    /usr/share/fonts/75dpi:
1890    /usr/share/doc/arch-wiki-markdown:
1613    /usr/include:
1575    /usr/share/doc/efl/html:
1556    /usr/share/dolphin-emu/sys/GameSettings:

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

Uাবির ডেমো

% du --version
> du (GNU coreutils) 8.22

একটি পরীক্ষা ডিরেক্টরি করুন:

% mkdir ~/test ; cd ~/test
% du --inodes -S
> 1       .

কিছু বাচ্চাদের ডিরেক্টরি:

% mkdir ./realdir ./linkdir
% du --inodes -S
> 1       ./realdir
> 1       ./linkdir
> 1       .

কিছু ফাইল তৈরি করুন:

% printf 'touch ./realdir/file%s\n' `seq 1 100` | . /dev/stdin
% du --inodes -S
> 101     ./realdir
> 1       ./linkdir
> 1       .

কিছু হার্ডলিঙ্ক:

% printf 'n="%s" ; ln ./realdir/file$n ./linkdir/link$n\n' `seq 1 100` | 
    . /dev/stdin
% du --inodes -S
> 101     ./realdir
> 1       ./linkdir
> 1       .

হার্ডলিঙ্কগুলি দেখুন:

% cd ./linkdir
% du --inodes -S
> 101

% cd ../realdir
% du --inodes -S
> 101

তারা একা গণনা করা হয়, তবে একটি ডিরেক্টরি উপরে যান ...

% cd ..
% du --inodes -S
> 101     ./realdir
> 1       ./linkdir
> 1       .

তারপরে আমি নীচে থেকে আমার রান স্ক্রিপ্টটি চালিয়েছি এবং:

> 100     /home/mikeserv/test/realdir
> 100     /home/mikeserv/test/linkdir
> 2       /home/mikeserv/test

এবং গ্রিম:

> 101 ./realdir
> 101 ./linkdir
> 3 ./

সুতরাং আমি মনে করি এটি দেখায় যে ইনোডগুলি গণনা করার একমাত্র উপায় হ'ল ইনোড। এবং ফাইলগুলি গণনা করার অর্থ ইনোডগুলি গণনা করা, আপনি দ্বিগুণভাবে ইনোডগুলি গণনা করতে পারবেন না - সঠিকভাবে ফাইলগুলি গণনা করার জন্য আইওডগুলি একাধিকবার গণনা করা যায় না।


2
কোন সংস্করণ যুক্ত --inodes? কোন "বৈকল্পিক" / "স্বাদ" / "পিক্সিক্স-ওয়ান্নাবস" / "বাস্তবায়ন" / যা আছে তা?
n611x007

উবুন্টু 14.04.5: ডু: অচেনা বিকল্পটি '--inodes'
Putnik

ডু (জিএনইউ কোর্টিলস) ২০১৪ সালের ৮.২৩ এর মধ্যে রয়েছে (এটি আমার পুরানো ডেবিয়ান জেসিতে রয়েছে)। ডেবিয়ান> উবুন্টু সেই শাস্তির জন্য দুঃখিত: পি উবুন্টুর এত পুরানো প্যাকেজ রয়েছে ...
ড্যানিয়েল ডব্লিউ

6

আমি এসও প্রশ্নোত্তর থেকে এই উত্তরটি শিরোনামটি ব্যবহার করেছি : আমার সমস্ত ইনোডগুলি কোথায় ব্যবহৃত হচ্ছে? যখন আমাদের এনএএস প্রায় 2 বছর আগে শেষ হয়েছিল:

$ find . -type d -print0 \
    | while IFS= read -rd '' i; do echo $(ls -a "$i" | wc -l) "$i"; done \
    | sort -n

উদাহরণ

$ find . -type d -print0 \
    | while IFS= read -rd '' i; do echo $(ls -a "$i" | wc -l) "$i"; done \
    | sort -n
...
110 ./MISC/nodejs/node-v0.8.12/out/Release/obj.target/v8_base/deps/v8/src
120 ./MISC/nodejs/node-v0.8.12/doc/api
123 ./apps_archive/monitoring/nagios/nagios-check_sip-1.3/usr/lib64/nagios
208 ./MISC/nodejs/node-v0.8.12/deps/openssl/openssl/doc/crypto
328 ./MISC/nodejs/node-v0.8.12/deps/v8/src
453 ./MISC/nodejs/node-v0.8.12/test/simple

ডিভাইসের আইনোডগুলি পরীক্ষা করা হচ্ছে

আপনার এনএএস এর উপর নির্ভর করে এটি পুরোপুরি বৈশিষ্ট্যযুক্ত dfকমান্ডের প্রস্তাব না দেয় । সুতরাং এই ক্ষেত্রে আপনি tune2fsপরিবর্তে ব্যবহার অবলম্বন করতে পারেন :

$ sudo tune2fs -l /dev/sda1 |grep -i inode
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Inode count:              128016
Free inodes:              127696
Inodes per group:         2032
Inode blocks per group:   254
First inode:              11
Inode size:           128
Journal inode:            8
Journal backup:           inode blocks

ফাইল সিস্টেমের গণ্ডি পেরিয়ে

আপনি সন্ধানটি কেবলমাত্র সেই ডিভাইসে সন্ধান করতে -xdevসংক্ষেপ করতে সরাসরি স্যুইচ করতে ব্যবহার করতে পারেন findযেখানে আপনি অনুসন্ধান শুরু করছেন।

উদাহরণ

বলুন যে আমার /homeডিরেক্টরিতে আমার এনএএস থেকে এনএফএস শেয়ারের মাধ্যমে আমার অটোমোটিং হচ্ছে, যার নাম মাল্ডার।

$ df -h /home/sam 
Filesystem            Size  Used Avail Use% Mounted on
mulder:/export/raid1/home/sam
                      917G  572G  299G  66% /home/sam

লক্ষ্য করুন যে মাউন্ট পয়েন্টটি এখনও সিস্টেমে স্থানীয় হিসাবে বিবেচিত হয়।

$ df -h /home/ .
Filesystem            Size  Used Avail Use% Mounted on
-                        0     0     0   -  /home
/dev/mapper/VolGroup00-LogVol00
                      222G  159G   52G  76% /

এখন যখন আমি দীক্ষা করি find:

$ find / -xdev  | grep '^/home'
/home

এটি পাওয়া গেছে /homeতবে স্বয়ংক্রিয় পরিমাণের সামগ্রীগুলির মধ্যে একটিও নেই কারণ সেগুলি ভিন্ন ডিভাইসে রয়েছে!

ফাইল সিস্টেমের ধরণ

তোমার সুইচ ব্যবহার করতে পারে find, -fstypeটাইপ এর ফাইল সিস্টেম যা নিয়ন্ত্রণ করা findদেখব।

   -fstype type
          File is on a filesystem of type type.  The valid filesystem types 
          vary among different versions of Unix; an incomplete list of 
          filesystem  types that are accepted on some version of Unix or 
          another is: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K.  You can use 
          -printf with the %F directive to see the types of your
          filesystems.

উদাহরণ

আমার কাছে কী ফাইল সিস্টেম আছে?

$ find . -printf "%F\n" | sort -u
ext3

সুতরাং আপনি ক্রসিং নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারেন:

শুধুমাত্র ext3

$ find . -fstype ext3 | head -5
.
./gdcm
./gdcm/gdcm-2.0.16
./gdcm/gdcm-2.0.16/Wrapping
./gdcm/gdcm-2.0.16/Wrapping/CMakeLists.txt

কেবল এনএফএস

$ find . -fstype nfs | head -5
$ 

ext3 এবং ext4

$ find . -fstype ext3 -o -fstype ext4 | head -5
.
./gdcm
./gdcm/gdcm-2.0.16
./gdcm/gdcm-2.0.16/Wrapping
./gdcm/gdcm-2.0.16/Wrapping/CMakeLists.txt

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

@Patrick - আপডেট দেখতে, আপনি ব্যবহার করে এটি নিয়ন্ত্রণ করতে পারেন -fstypeথেকে find
SLM

1
@Gilles - সহজ উত্তর ... না Page Down খোদার এই man পৃষ্ঠা 8-) এ সব পথ করেনি
SLM

@ গিলিস - ম্যান পেজটি -xtypeফাইল সিস্টেমগুলি বাদ দেয় এমন ইঙ্গিত দেয় বলে মনে হয় না , এটি ফাইলের ধরণের দিকে নজর দেয়। আমি কেবল এর মতো উদাহরণগুলি খুঁজে পাচ্ছি:find . \( -fstype nfs -prune \)
slm

@ গিলিস - findফাইল সিস্টেমের সীমানা পেরোনোর ​​উপায় সম্পর্কে কীভাবে মন্তব্যে আমি প্যাট্রিকের কিউকে সম্বোধন করছিলাম ? তার প্রাক্তন তিনি উল্লেখ করেছেন "যেমন / কি পূর্ণ, এবং আপনার নেটওয়ার্ক ফাইল সিস্টেমগুলি মাউন্ট করা আছে, আপনি নেটওয়ার্ক ফাইল সিস্টেমে ডাইভিং যেতে চান না"।
SLM


3

এর জন্য বিস্তারিত ইনোড ব্যবহারের তালিকা /করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

echo "Detailed Inode usage for: $(pwd)" ; for d in `find -maxdepth 1 -type d |cut -d\/ -f2 |grep -xv . |sort`; do c=$(find $d |wc -l) ; printf "$c\t\t- $d\n" ; done ; printf "Total: \t\t$(find $(pwd) | wc -l)\n" 

এখানে স্বাগতম! আমি পরামর্শ দিচ্ছি, পরের বারের ফর্ম্যাটটি আরও ভাল, দয়া করে।
পেরের্থ

1
এটি একজন অনেলাইনার, আমি এতে কোনও ভুল দেখছি না।
sjas

2

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

sudo apt-get autoremove

আপনার জন্য এটি করতে হবে। আমার ক্ষেত্রে, আইওনডের ব্যবহার 78% ছিল যার কারণে আমি সতর্কতা পেয়েছি।

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/xvda1     524288 407957 116331   78% /
none           957443      2 957441    1% /sys/fs/cgroup
udev           956205    388 955817    1% /dev
tmpfs          957443    320 957123    1% /run
none           957443      1 957442    1% /run/lock
none           957443      1 957442    1% /run/shm
none           957443      5 957438    1% /run/user

sudo apt-get autoremoveকমান্ড চালানোর পরে এটি 29% এ নেমে গেছে

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/xvda1     524288 150472 373816   29% /
none           957443      2 957441    1% /sys/fs/cgroup
udev           956205    388 955817    1% /dev
tmpfs          957443    320 957123    1% /run
none           957443      1 957442    1% /run/lock
none           957443      1 957442    1% /run/shm
none           957443      5 957438    1% /run/user

এটি ছিল আমার পর্যবেক্ষণ যা আমার সময় সাশ্রয় করেছিল। লোকেরা এর থেকে আরও ভাল সমাধান পেতে পারে।


2

নীচের কমান্ডটি ব্যবহার করে তাত্পর্যপূর্ণ করা আমার কাছে দ্রুত এবং সহজ মনে হয়েছে:

$ sudo du -s --inodes * | sort -rn

170202  var
157325  opt
103134  usr
53383   tmp
<snip>

তারপরে আপনি varউদাহরণস্বরূপ প্রবেশ করতে পারেন এবং ডিরেক্টরিগুলি ব্যবহার করে বড় ইনোডটি কী তা দেখতে পারেন।


0

এখন পর্যন্ত প্রতিটি উত্তর ধরে নিয়েছে যে সমস্যাটি একক ডিরেক্টরিতে অনেকগুলি ফাইলের পরিবর্তে অনেকগুলি সাব-ডাইরেক্টরির পরিবর্তে সমস্ত সমস্যাটিতে অবদান রাখছে। ভাগ্যক্রমে সমাধানটি হ'ল কম পতাকা ব্যবহার করা।

# du --inodes --one-file-system /var | sort --numeric-sort
...
2265    /var/cache/salt/minion
3818    /var/lib/dpkg/info
3910    /var/lib/dpkg
4000    /var/cache/salt/master/gitfs/refs
4489    /var/lib
5709    /var/cache/salt/master/gitfs/hash
12954   /var/cache/salt/master/gitfs
225058  /var/cache/salt/master/jobs
241678  /var/cache/salt/master
243944  /var/cache/salt
244078  /var/cache
248949  /var

অথবা খাটো অপশন সঙ্গে: du --inodes -x | sort -n। দুর্ভাগ্যক্রমে সমস্ত সংস্করণে duইনোড বিকল্প নেই।

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