অ্যাপাচি 2 এবং লোগ্রোটেট: বিলম্ব সংক্ষেপণ প্রয়োজন?


8

আমি বর্তমানে আমার অ্যাপাচি লগগুলির ফাইল আকারের দিকে তাকাচ্ছি কারণ সেগুলি বিশাল আকার ধারণ করেছে। আমার লোগ্রোটেট কনফিগারেশনে, আমি delaycompressসক্ষম করেছি। অ্যাপাচি কি সত্যিই এটির প্রয়োজন (যেমন লোগ্রোটেট ডকুমেন্টেশন বলে যে কিছু প্রোগ্রাম এখনও পুরানো ফাইলটিতে লেখেন) বা এটি অক্ষম করা নিরাপদ delaycompress?

এখানে আমার লোগ্রোটেট কনফিগারেশন:

/var/log/apache2/*.log {
    weekly
    missingok
    rotate 26 
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
            if [ -f /var/run/apache2.pid ]; then
                    /etc/init.d/apache2 restart > /dev/null
            fi
    endscript
}

উত্তর:


7

যদি আপনি একটি অ্যাপাচি পুনরায় চালু করে (বা এমনকি 'গ্রেফিউল') করেন তবে এটি ফাইলের হ্যান্ডলগুলি বন্ধ করে দেবে এবং সেগুলি আবার খুলবে। আপনার দেরি কমপ্রেস করার দরকার নেই কারণ ফাইলটি আপনার পোস্ট্রোটেট পুনরায় আরম্ভের অংশ হিসাবে পুনরায় খোলা থাকবে।

rotate access_log -> access_log.1 (rename action, no INODE change)
apache still writing to access_log.1 (same open FD on same INODE)
apache restart (close FD, release INODE writing)
apache writing to access_log (new FD to a new INODE)

একটি পুনঃসূচনা হ'ল এক ধরণের খারাপ ধারণা - যদি কনফিগার ফাইলটি দুর্ঘটনাক্রমে পরিবর্তিত হয় এবং আর বৈধ হয় না তবে কি হবে? আপনার অ্যাপাচি ব্যাক আপ শুরু হবে না। পরিবর্তে অভিভাবক প্রসেসে একটি HUP প্রেরণ করুন যা এটি ফাইল হ্যান্ডলগুলি বন্ধ / পুনরায় খুলতে বলে।

postrotate
  /bin/kill -HUP `cat /var/run/apache2.pid 2>/dev/null` 2>/dev/null || true
endscript

বিড়াল ব্যর্থ হবে যদি পিআইডি নিখোঁজ হয় (বা খালি, বা অবৈধ) ফলে কিলও ব্যর্থ হয় যাতে আপনার if..thenচারপাশের ব্লকের প্রয়োজন হয় না।


ওয়াইএমএমভি তবে আমি এটি একটি দুর্দান্ত উত্তর খুঁজে
পেয়েছি

0

Hrm, এক্ষেত্রে সম্ভবত অ্যাপাচি লগগুলি খোলা রাখে।

একটি জিনিস যা আপনি চেষ্টা করতে পারেন তা হ'ল rotatelogsস্ক্রিপ্ট। এটি apache2-utilsপ্যাকেজের অংশ , কমপক্ষে এখানে আমার উবুন্টু ওয়ার্কস্টেশন। আর একটি পদ্ধতি হ'ল সাপ্তাহিক পরিবর্তে তাদের প্রতিদিন ঘোরাতে হবে, সুতরাং আপনি কমপ্রেসনের আগে কম বাফার করছেন।


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