আমি ম্যানুয়ালি এর সমস্ত সামগ্রী মুছে ফেলার পরে অ্যাপাচি কোনও লগ ফাইলটিতে লিখতে অস্বীকার করে


9

আমি ম্যানুয়ালি তাদের বিষয়বস্তু মুছে ফেলার পরে আপাচি লগ ফাইলগুলিতে ( ErrorLog/ / CustomLog) লিখতে অস্বীকার করবেন না কেন ?

আমি অ্যাপাচি পুনরায় চালু না করা পর্যন্ত এটি আর সেই লগ ফাইলগুলিতে আর লিখবে না।

কেন এই ক্ষেত্রে? অ্যাপাচি পুনরায় চালু না করে আমি কীভাবে নিরাপদে কোনও লগ ফাইল মুছতে পারি?

উবুন্টু 10.04 এ আমার অ্যাপাচি 2.2.14 আছে।


আপনি কীভাবে বিষয়বস্তু মুছবেন?
ডোম

@ ডোম আমি কেবল এটিকে ভিএম দিয়ে খুলি, "ডিজি" করব (যা সমস্ত বিষয়বস্তু মুছে ফেলে) এবং তারপরে "! Wq" দিয়ে সংরক্ষণ করুন। মালিকানা / গোষ্ঠী / অনুমতিগুলি পরিবর্তন করা হয় না।
অ্যাটমিকফোল্ট

3
@ অ্যাটমিকফোল্ট প্র্রোবাইবিল কারণ আপনি এ্যাপাচি লগগুলি ঘোরানোর কথা নয় । আপনার এমন কিছু ব্যবহার করা উচিত logrotateযা অ্যাপাচে যথাযথ পুনরায় লোড / পুনঃসূচনা সংকেত পাঠায় (নীচে পেড্রোর উত্তর দেখুন)। নিকগ্রিম আপনার লগগুলি থামার পিছনে "কেন" coveredেকে রেখেছে - অ্যাপাচি এখনও পুরানো ইনোডে লিখছেন (যা আপনি এটি পেতে পারেন এমন কোনও ফাইল সিস্টেমের সাথে আর সংযুক্ত নেই)
voretaq7

উত্তর:


14

আমি কেবল একটি সংক্ষিপ্ত পরীক্ষা করেছি:

$ echo vim test > vimtest
$ ls -i vimtest
35149 vimtest
$ vim vimtest
<dG, :wq>
$ ls -i vimtest
35148 vimtest

নোট করুন যে vimtestএটি সম্পাদনার পরে একটি আলাদা ইনোড নম্বর রয়েছে এবং এটি আসলে একটি পৃথক ফাইল (পুরানো ফাইলের মতো একই নামেই))

সুতরাং, আপনি যখন ভিএম দিয়ে ফাইলটি সম্পাদনা করেন এটি পুরানো ফাইলটি মুছে দেয় এবং একই নামে একটি নতুন তৈরি করে। আপনি যে সমস্যাটি দেখছেন তা অ্যাপাচি এখনও পুরানো (মুছে ফেলা) ফাইলে লেখার কারণে ঘটেছিল (আপনি এটি দিয়ে পরীক্ষা করতে পারেন lsof)।

আপনি যদি সত্যিই কোনও লগ ফাইল ছাঁটাই করতে চান তবে বিবেচনা করুন truncate -s 0 /path/to/file.log(যা স্থানে কাটা কাটা বলে মনে হচ্ছে)


2
প্রতিধ্বনি> /path/to/file.log এছাড়াও কাজ করে

8

আমি অ্যাপাচি 2 লগ ফাইলগুলির সাথে জোর করে জোর দিয়ে সুপারিশ করব :

$ sudo logrotate -f /etc/logrotate.d/apache2

আপনি যদি সন্ধান করেন তবে /etc/logrotate.d/apache2দেখতে পাবেন যে Apache2লগ ফাইলটি এর সাথে মুছে ফেলার পরে কনফিগারেশনটি আবার লোড করতে হবে:

$ sudo /etc/init.d/apache2 reload

উবুন্টুতে আপনি বিকল্পভাবে এটি করতে পারেন:

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