কীভাবে ওপেন ফাইল বর্ণনাকারী প্রদর্শন করতে হয় তবে lsof কমান্ড ব্যবহার না করে


48

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

 cat /proc/sys/fs/file-nr

এই কমান্ডটি এফডি'র সংখ্যা প্রদর্শন করার সময়, উপরের কমান্ডটি স্রেফ গণনা করা ওপেন ফাইল বিবরণীর তালিকাটি আপনি কীভাবে প্রদর্শন করবেন?


4
আপনি সম্ভবত জানতে চান আপনার উলিমিত অতিক্রম করেছে, তাই না? আমি linuxintro.org/wiki/Is_my_ulimit_exceeded এর অধীনে এ সম্পর্কে ব্লগ করেছি ; সবচেয়ে গুরুত্বপূর্ণ, উলিমিট হ'ল প্রতি প্রক্রিয়া বিধিনিষেধ যা আপনি / প্রোক / পিআইডি / সীমাবদ্ধতার অধীনে খুঁজে পেতে পারেন এবং lsof এর পরিবর্তে আমি প্রক্রিয়াটির ফাইল বর্ণনাকারীদের তালিকাভুক্ত করতে ls / proc / PID / fd ব্যবহার করব।
থারস্টেন স্টার্ক

উত্তর:


60

lsof | wc -lফাইল বর্ণনাকারী গণনা না করার দুটি কারণ রয়েছে । একটি হ'ল এটি এমন ফাইলগুলি তালিকাভুক্ত করে যা ফাইলগুলি খালি নয় যেমন লোড হওয়া গতিশীল লিঙ্কযুক্ত লাইব্রেরি এবং বর্তমান কার্যনির্বাহী ডিরেক্টরি; আপনি তাদের ফিল্টার আউট প্রয়োজন। আর একটি হ'ল lsofচালাতে কিছুটা সময় নেয়, তাই চালানো অবস্থায় খোলা বা বন্ধ হওয়া ফাইলগুলি মিস করতে পারে; সুতরাং তালিকাভুক্ত ওপেন ফাইলগুলির সংখ্যা আনুমানিক। তাকানো /proc/sys/fs/file-nrআপনাকে সময়ে একটি নির্দিষ্ট সময়ে সঠিক মূল্য দেয়।

cat /proc/sys/fs/file-nrমূলত রিসোর্স ক্লান্তি পরীক্ষা করার জন্য যখন আপনার সঠিক চিত্রের প্রয়োজন হয় কেবল তখনই দরকারী। আপনি যদি খোলা ফাইলগুলি তালিকাভুক্ত করতে চান তবে আপনাকে কল করতে হবে lsofবা /proc/*/fdম্যানুয়ালি ট্রলিংয়ের মতো কিছু সমতুল্য পদ্ধতি ব্যবহার করতে হবে ।


1
গিলস একটি ভাল ব্যাখ্যা দেওয়ার জন্য হাই ধন্যবাদ। আমি ls / proc / * / fd চেষ্টা করেছি এবং সেই সময় সমস্ত খোলা এফডি পেয়েছি। এটি কিছু রঙিন কোডিং সহ একটি আউটপুট উত্পাদন করছে, আমাকে কেবল ম্যানুয়ালটি দেখতে হবে।
dimas

@ ডিমাস /proc/*/fdডিরেক্টরিতে খোলা ফাইলগুলির প্রতীকী লিঙ্ক রয়েছে। চাক্ষুষ পরিদর্শন জন্য, ব্যবহার করুন ls -l। স্বয়ংক্রিয় চিকিত্সার জন্য, readlinkলিঙ্ক লক্ষ্যটি নিষ্কাশন করতে ব্যবহার করুন।
গিলস 'অশুভ হওয়া বন্ধ করুন'

শুধু ls -l ব্যবহার করুন তবে আমি রিডলিংকের সাথে পরীক্ষা করব। এখানে বর্ণিত অন্যান্য / প্রোক / পিআইডি / মানচিত্র এবং অন্যান্য বিকল্পগুলির চেষ্টা করেছি । অতিরিক্ত তথ্যের জন্য আবার ধন্যবাদ।
dimas

1
/ proc / sys / fs / file-nr আমাকে 3872 দেয় (এবং আরও দুটি সংখ্যা)। আমার যদি এই ফাইলগুলি খুলতে হয় তবে আমি কীভাবে এটি খুলতে পারি?
থারস্টেন স্টার্ক

1
@ থারস্টেনস্টার্কের সমস্ত সেটিংস setrlimit( ulimitশেল কমান্ডের অন্তর্গত সিস্টেম কল ) প্রতি প্রক্রিয়াধীন। তারা কেবল কলটি করে এমন প্রক্রিয়াটিকেই প্রভাবিত করে (এবং অপ্রত্যক্ষভাবে প্রসেসগুলি যা এটি পরে কাঁপায়)।
গিলস 'খারাপ হয়ে যাওয়া বন্ধ করুন'

25

প্রক্রিয়া সম্পর্কিত তথ্যগুলি সিস্টেমের দ্বারা / প্রোক এর অধীনে ডিরেক্টরিতে রাখা হয় is উদাহরণস্বরূপ, পিআইডি 1234 সহ প্রক্রিয়াটির / ডিরেক্টরি / 1234 নামক ডিরেক্টরি থাকবে।

সেখানে বেশ কিছুটা তথ্য রয়েছে তবে এখনই আপনি / proc / 1234 / fd উপ-ডিরেক্টরিতে আগ্রহী।

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

উদাহরণ:

root@johan-HP-ProBook-6560b-LG654EA-ACQ:/proc# ls -l 2443/fd
total 0
lr-x------ 1 johan johan 64 Feb 27 10:26 0 -> pipe:[13637]
l-wx------ 1 johan johan 64 Feb 27 10:26 1 -> /home/johan/.xsession-errors
lrwx------ 1 johan johan 64 Feb 27 10:26 10 -> anon_inode:[eventfd]
lrwx------ 1 johan johan 64 Feb 27 10:26 11 -> anon_inode:[eventfd]
lrwx------ 1 johan johan 64 Feb 27 10:26 12 -> socket:[39495]
lrwx------ 1 johan johan 64 Feb 27 10:26 13 -> anon_inode:[eventfd]
lr-x------ 1 johan johan 64 Feb 27 10:26 14 -> anon_inode:inotify
lrwx------ 1 johan johan 64 Feb 27 10:26 15 -> anon_inode:[eventfd]
l-wx------ 1 johan johan 64 Feb 27 10:26 16 -> pipe:[37885]
lr-x------ 1 johan johan 64 Feb 27 10:26 17 -> pipe:[37886]
l-wx------ 1 johan johan 64 Feb 27 10:26 2 -> /home/johan/.xsession-errors
l-wx------ 1 johan johan 64 Feb 27 10:26 21 -> pipe:[167984]
lr-x------ 1 johan johan 64 Feb 27 10:26 22 -> pipe:[167985]
l-wx------ 1 johan johan 64 Feb 27 10:26 23 -> pipe:[170009]
lr-x------ 1 johan johan 64 Feb 27 10:26 24 -> pipe:[170010]
lrwx------ 1 johan johan 64 Feb 27 10:26 3 -> anon_inode:[eventfd]
lr-x------ 1 johan johan 64 Feb 27 10:26 4 -> pipe:[14726]
lrwx------ 1 johan johan 64 Feb 27 10:26 5 -> socket:[14721]
l-wx------ 1 johan johan 64 Feb 27 10:26 6 -> pipe:[14726]
lrwx------ 1 johan johan 64 Feb 27 10:26 7 -> socket:[14730]
lrwx------ 1 johan johan 64 Feb 27 10:26 8 -> socket:[13984]
lrwx------ 1 johan johan 64 Feb 27 10:26 9 -> socket:[14767]

root@johan-HP:/proc# cat 2443/fdinfo/2
pos:    1244446
flags:  0102001

/ Proc এর অধীনে থাকা ফাইলগুলির বাক্যগুলি একবার দেখুন ... সিস্টেম থেকে প্রচুর দরকারী তথ্য এখানে উপস্থিত রয়েছে।

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