কোন প্রক্রিয়াটি কোনও নির্দিষ্ট ডিরেক্টরিতে লিখছে তা সন্ধান করুন


19

আমার একটি ডিরেক্টরি / কিছু / দির আছে এবং আমি দেখতে পাচ্ছি যে সমস্ত সময় নতুন ফাইল উপস্থিত থাকে। কোন প্রক্রিয়া এই ফাইলগুলি তৈরি করছে তা আমি কীভাবে জানতে পারি?

উত্তর:


18

ব্যবহার করে দেখুন lsof +r2 | grep '/some/dir'। এটি / কিছু / দির অ্যাক্সেস করার প্রক্রিয়াগুলি দেখায় এবং প্রতি 2 সেকেন্ডে রিফ্রেশ করে।


2
থেকস, এটি আমার যা প্রয়োজন তা খুব কাছে, কারণ এটি প্রথমে খোলার ফাইলগুলির পুরো তালিকা তৈরি করে, তারপরে / কিছু / দির দ্বারা ফিল্টার করে। তবে যদি প্রক্রিয়াগুলি ফাইলগুলি খুব দ্রুত তৈরি করে এবং সেগুলি খোলা না রাখে, আমি বুঝতে পারি যে উপরের কিছুগুলি এমনকি মিসও হতে পারে। আমি মনে করি সে ক্ষেত্রে একমাত্র বিকল্পটি নিরীক্ষা সাবসিস্টেম, তাই না?
homer5439

আপনার অনুমান ঠিক আছে। আর একটি ধারণা ইনোটিফয়েট ব্যবহার করা, দেখুন linux.die.net/man/1/inotifywait
সাপ্তাহিক

ধন্যবাদ, আমি আগে ইনোটিফাইয়ের সরঞ্জামগুলি বিবেচনা করেছি, তবে আমি দেখতে পেয়েছি যে তারা ফাইল সিস্টেমের স্তরে খাঁটিভাবে কাজ করে এবং কে কী করেছে সে সম্পর্কে কোনও তথ্য সরবরাহ করতে সক্ষম বলে মনে হয় না।
homer5439

18

কার্নেল auditসাবসিস্টেম ব্যবহার করুন

auditctl -w /some/dir/ -p war -k whatsgoingon

এটি / কিছু / দির / এর অধীনে কিছু হওয়ার জন্য অপেক্ষা করে একটি হুক সেট আপ করে।

তারপরে নিশ্চিত হয়ে নিন যে আপনার auditdডেমন চলছে। এর পরে কেবল ফাইলগুলি উপস্থিত হওয়া অবধি অপেক্ষা করুন এবং /var/log/auditd.logএটি আপনার সিস্টেমে যেখান থেকে লেখা হোক বা না দেখুন এবং কী হয়েছে এবং কী প্রক্রিয়াটি দ্বারা তা পড়ুন।


ধন্যবাদ, এটি দেখে মনে হচ্ছে এটি ঠিক এটি করে, যদিও এটির জন্য নিরীক্ষণ সরঞ্জামগুলি ইনস্টল করা দরকার যা সম্ভবত পূর্বনির্ধারিতভাবে সর্বত্র নেই। তবে ঠিক আছে, যদি সেই তথ্যের প্রয়োজন হয় তবে সেগুলি সর্বদা ইনস্টল করা যেতে পারে।
homer5439

এটি দেখার জন্য লোকেদের হিসাবে একটি নোট হিসাবে: আপনি শীর্ষ স্তরের ডিরেক্টরিতে ঘড়ি রাখতে পারবেন না (কার্নেল দ্বারা নিষিদ্ধ)
টনি সেপিয়া

1
সত্যিই এটি একটি কার্যকর উপায়! অনেক ধন্যবাদ!!! বিটিডাব্লু, আপনার হয়ে গেলে, আপনি চিরকালের জন্য নিরীক্ষণ লগটি এড়াতে সমস্ত হুক মুছতে পারেন auditctl -D। আপনি auditctl -lসমস্ত হুক তালিকাতে ব্যবহার করতে পারেন ।
রবার্ট

0

lsof সাহায্য করতে পারি:

# lsof -r1 /some/dir/*

1
ধন্যবাদ। উপরের কমান্ডটি কেবল আমাকে বলেছে যে বিদ্যমান ফাইলগুলিতে অ্যাক্সেস করছে তবে নতুন নির্মিত ফাইলগুলির জন্য কিছুই দেখায় না? আমার বোঝাটি হ'ল / কিছু / দির / * কমান্ডটি চালিত হওয়ার সময় উপস্থিত ফাইলগুলির তালিকায় প্রসারিত হয়।
homer5439
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.