লোগ্রোটেটে কখন বিলম্ব কম্প্রেস বিকল্পটি ব্যবহার করবেন?


33

ম্যান পেজ logrotateবলে যে:

It can be used when some program cannot be told to close its logfile
and  thus  might  continue writing to the previous log file for some
time.

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

আমার বোধগম্যতাটি copytruncateতখন ব্যবহার করা উচিত যখন কোনও প্রোগ্রাম লগফিল বন্ধ করতে বলা না যায়। আমি সচেতন যে লগফাইলে লিখিত কিছু ডেটা কপি প্রগতিতে থাকা অবস্থায় হারিয়ে যায়।

আমি কাউচডিবি-র জন্য লোগ্রোটেট ফাইলটির দিকে চেয়ে ছিলাম এবং এতে উভয়ই copytruncateএবং delaycompressবিকল্প ছিল।

/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
   weekly
   rotate 10
   copytruncate
   delaycompress
   compress
   notifempty
   missingok
}

দেখে মনে হচ্ছে ইতিমধ্যে delaycompressযখন সেখানে রয়েছে তখন কোনও বিন্দু copytruncateনেই। আমি কী মিস করছি?

উত্তর:


27

আপনার বোঝাপড়াটি copytruncateসঠিক, তবে ম্যানপেজে থাকা শব্দটি delaycompressকিছুটা বিভ্রান্তিকর। আরও সঠিকভাবে, এটিতে বলা উচিত "যখন কোনও প্রোগ্রামকে তাত্ক্ষণিকভাবে এটির লগফিল বন্ধ করতে বলা যায় না " - উদাহরণস্বরূপ, আপনি যদি ভাগযুক্ত স্ক্রিপ্টগুলি ব্যবহার করেন এবং সমস্ত লগ ফাইলগুলি ঘোরানো হলে স্ক্রিপ্টটি লগ ব্যবহার করে প্রক্রিয়াটিতে একটি সংকেত প্রেরণ করে ।


1
যখন আমি ব্যবহার করছি copytruncate, প্রোগ্রামটির লগফাইলে বন্ধ করার জন্য বলার দরকার নেই। সুতরাং delaycompressসাথে বরাবর এটি অর্থহীন copytruncate?
আনন্দ চিঠিপথু

6
copytruncateআপনার একেবারে না থাকলে কখনও ব্যবহার করবেন না কারণ এটি লগ এন্ট্রি হারায়। আপনি যে দুটি বৈশিষ্ট্য সরবরাহ করে তা চাইলে আপনি উভয় বিকল্প ব্যবহার করতে পারেন delaycompress- আগের লগফিলটিকে প্রথমে সঙ্কুচিত না করে পড়ার ক্ষমতা।
ওম্বল

copytruncateআমি যদি আমার প্রোগ্রামটি পুনরায় লোড করতে না বলতে পারি তবে কি অন্য কোনও বিকল্প নেই ?
আনন্দ চিঠিপথু

5
না, এটি কারণেই আপনার এমন সফ্টওয়্যার ব্যবহার করা উচিত যা চুষতে না পারে এবং যা "আপনার লগগুলি পুনরায় লোড করুন" বলার জন্য একটি সংকেত গ্রহণ করবে।
womble

3

আমি আপনার প্রশ্নটি পুরোপুরি বুঝতে পেরেছি কিনা তা নিশ্চিত নই, তবে আপনি যদি আমার মতামতটি জিজ্ঞাসা করেন তবে ... আমি এটি ব্যবহার করি:

postrotate
          killall -HUP syslog-ng
  endscript

লগটি মারতে এবং পরের দিকে চলে যাওয়ার এটি একটি দুর্দান্ত (বা অন্তত একটি) উপায়। "যে প্রোগ্রামগুলি" স্তন্যপান করে, যেমন সিস্কোর এএসএ প্ল্যাটফর্ম যা প্রতি সেকেন্ডে প্রচুর ডেটা লগ করে, এটি কাজ করে।


3

আমরা ব্যাবহার করি:

  • দৈনন্দিন
  • delaycompress
  • nodateext

এটি অ্যাপাচিটির স্থির অনুলিপি তৈরি করে access_log access_log.1যাতে আমরা তারপরে দিনের শেষে স্ক্রিপ্ট হিসাবে আমাদের পরিসংখ্যান প্যাকেজটি চালাতে পারি।

পরের দিন লোগ্রোটেট ফাইল তৈরির সংকোচনে access_log.2.zip

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