উত্তর:
আপনি যখন মেইল.লগ ফাইলটি মুছবেন, আরএসব্লগ (উবুন্টুতে) ফাইলটি আলগা হ্যান্ডেল করুন। এটি উবুন্টুতে ফিরে কাজ করার জন্য, দয়া করে:
sudo service rsyslog restart
এটি কেবলমাত্র নতুন ফাইল তৈরি করবে না তবে লগগুলি লেখাও শুরু করবে।
এটি সিসলগে একটি বাগ, তবে কোনও প্রোগ্রাম দ্বারা খোলার সময় যখন কোনও ফাইল মুছে ফেলা হয় তখন একটি সাধারণ সমস্যা চিত্রিত করে। আপনি যখন "আরএম" করেন, আপনি একটি ডিরেক্টরি এন্ট্রি সরিয়ে দিচ্ছেন, তবে আপনি অন্তর্নিহিত ফাইলটি সরাচ্ছেন না। অপারেটিং সিস্টেমটি ফাইলটিতে রেফারেন্সের একটি গণনা রাখে এবং রেফারেন্সের গণনা শূন্য না হওয়া পর্যন্ত প্রকৃতপক্ষে অন্তর্নিহিত ফাইল ডেটা মুছবে না। একটি গড় ফাইলের ক্ষেত্রে, না খোলা ফাইলের রেফারেন্স গণনাটি একটি (ডিরেক্টরিতে প্রবেশ)। ফাইলটি খোলার পরে, গণনাটি দুটি করে বাড়ানো হয়। যদি দ্বিতীয় প্রোগ্রাম একই ফাইলটি খোলায়, গণনাটি তিনটিতে বাড়ানো হবে। যদি ডিরেক্টরি এন্ট্রিটি এখন মুছে ফেলা হয়, তবে গণনাটি দুটি করে কমিয়ে দেওয়া হয়েছে - যার অর্থ ফাইলটি অকলম (কোনও নাম নেই),
আপনি যখন / var / লগ / মেল মুছবেন তখন সিস্টেম লগারের কাছে ফাইলটি লেখার জন্য খোলা থাকে। আপনি যদি একটি নতুন / ভার / লগ / মেল তৈরি করেন তবে এটি সিস্টেম লগার বর্তমানে লিখতে থাকা ফাইলের থেকে আলাদা কোনও ফাইলকে নির্দেশ করবে। সবকিছুকে সামঞ্জস্যপূর্ণ করার একমাত্র উপায় হ'ল সিস্টেম লগার পুনরায় চালু করা। আসল সিস্টেম লগার শেষ হয়ে গেলে, এর সাথে যুক্ত সমস্ত ফাইল বন্ধ হয়ে যায় - বেনামে মেল লগ সহ যার ডিরেক্টরিতে আপনি প্রবেশ মুছেছেন। আপনি যখন সিস্টেম লগার পুনরায় চালু করবেন, লগ বার্তা লেখার দরকার পড়লে এটি / var / লগ / মেলটি পুনরায় খুলবে এবং এরপরে এটি খোলা রাখবে।
এটি অন্য একটি উপায় যা প্রায়শই সন্ধান করা হয় তা হ'ল কোনও চলমান প্রোগ্রাম যখন ফাইলের ডেটা দিয়ে সমস্ত ডিস্ক পূরণ করে; ব্যবহারকারী খুব বড় ফাইল মুছে ফেলেন, তবে ডিস্কের স্থানটি মুক্ত হয় নি, কারণ ফাইলটি এখনও বিদ্যমান রয়েছে এবং ডিস্কের স্থান গ্রহণ করছে, তবে ডিরেক্টরি প্রবেশিকাটি সরানো হয়েছে। প্রোগ্রামটি শেষ হয়ে গেলে (হয় ব্যবহারকারী এটি মেরে ফেলেছে বা এটি নিজেই শেষ হয়ে গেছে), ডিস্কের স্থানটি পুনরুদ্ধার করা হবে কারণ ফাইলটিতে রেফারেন্স গণনা শূন্যে চলে গেছে।
লগার এই প্রতিরোধে কী করতে পারে তা হ'ল প্রথমে লগ বার্তাটি লিখতে, লগ ফাইল ডিরেক্টরি ডিরেক্টরিতে প্রবেশের উপস্থিতি আছে কিনা তা পরীক্ষা করে দেখুন এবং এটি উপস্থিত না থাকলে আসল লগ ফাইলটি বন্ধ করুন, একটি নতুন খুলুন এবং তারপরে পুনরায় লিখুন বার্তা - যাতে বার্তাটি যাতে হারিয়ে না যায়। তবে সিস্টেম লগারের যে সমস্ত প্রয়োজন তার চেয়ে অনেক বেশি জটিলতার প্রয়োজন - অতিরিক্ত প্রতিটি ডিরেক্টরি যাচাই করার কারণে এটি যে বার্তাটি লিখবে তাতে লিখতে বেশ খানিকটা সময় লাগবে - যা ফাইলটি প্রতিবারই সাফল্য অর্জন করবে মুছে ফেলা হয়নি।
উপরের সমস্তটি আরও স্পষ্টভাবে বোঝার জন্য, নিম্নলিখিত কমান্ডটি শিক্ষণীয়, কারণ এটি সিস্টেম কলটি নির্দেশিকা প্রবেশের অপসারণ এবং রেফারেন্স হ্রাস সম্পাদন করে: "ম্যান 3 আনলিঙ্ক"
এটি সেন্টোস 7. এ সমস্যা নয় Someone কেউ মনে করেছেন যে জার্নালারের মাধ্যমে পোস্টফিক্স মেল লগ করা ভাল ধারণা হবে। আপনি যদি পোস্টফিক্স লগগুলি দেখতে চান:
journalctl -u postfix
(সম্পূর্ণ লগ দেখতে)
journalctl -u postfix -f
(লগ লেজ)
পোস্টফিক্সের জন্য আপনার মেইন.সি.এফ. এও প্রয়োজন হতে পারে
syslog_name = postfix
journalctl --vacuum-time=1d