লোগ্রোটেট পুরানো লগগুলি সরিয়ে দেয় না


14

কোনও কারণে পুরানো লগ ফাইলগুলি মোছা হয় না। অ্যাপাচি সহ উদাহরণ

কনফিড ফাইলটি কী বলে:

$ cat /etc/logrotate.d/apache2
/var/log/apache2/*.log {
    weekly
    missingok
    rotate 2
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
            /etc/init.d/apache2 reload > /dev/null
    endscript
}

লগ ফোল্ডারের (ক্রপযুক্ত) সামগ্রী:

# ls /var/log/apache2/
access.log       error.log.26.gz                other_vhosts_access.log.20.gz  access-ssl.log.14.gz
access.log.1     error.log.27.gz                other_vhosts_access.log.21.gz  access-ssl.log.15.gz
access.log.2.gz  error.log.28.gz                other_vhosts_access.log.22.gz  access-ssl.log.16.gz
access.log.3.gz  error.log.2.gz                 other_vhosts_access.log.23.gz  access-ssl.log.17.gz
[...]

আসলে তাদের প্রচুর আছে:

# ls /var/log/apache2/ | wc -l
85

--Verbose সহ লোগ্রোটেট কমান্ডটি আমাকে এটি দেয়:

# /usr/sbin/logrotate --verbose  /etc/logrotate.conf
[...]
reading config file apache2
reading config info for /var/log/apache2/*.log
[...]
rotating pattern: /var/log/apache2/*.log  weekly (2 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/apache2/access.log
  log does not need rotating
considering log /var/log/apache2/error.log
  log does not need rotating
considering log /var/log/apache2/other_vhosts_access.log
  log does not need rotating
considering log /var/log/apache2/pbpdhg-ssl.log
  log does not need rotating
not running postrotate script, since no logs were rotated
[...]

এখানে কি ভুল? লগগুলি ঘোরানো হয় কিন্তু সরানো হয় না? আমি কী মিস করছি?

উত্তর:


17

আপনার কনফিগারেশনটি বলে: 2 ঘোরান

এর অর্থ লগ ফাইলগুলি সরানোর আগে 2 বার আবর্তিত হয়, সুতরাং লোগ্রোটেট কেবলমাত্র 2 টি ফাইলের যত্ন করে।

আমার অনুমান যে কনফিগারেশনটি এক পর্যায়ে পরিবর্তন করা হয়েছিল, কারণ আগে আরও লগ ফাইল রাখা হয়েছিল, সম্ভবত এটি 28 রোটেটের মতো ছিল these এই পুরানো ফাইলগুলি আপনাকে ম্যানুয়ালি মুছে ফেলতে হবে।


আমি উত্তরটি প্রমাণ করতে পারি না তাই অনুমান করি এটি সঠিক right তবে কেন access.log.3.gzএখনও উপস্থিত তা আমি বুঝতে পারি না ।
সমক

2
কারণ ঘোরান 2 কেবল 2 টি ফাইল, অর্থাৎ .1.gz এবং .2.gz পরিচালনা করে এবং অন্যান্য ফাইলগুলিকে উপেক্ষা করে।
johnshen64

1
আমি 365 ঘূর্ণনটি 90 টি ঘোরাতে পরিবর্তন করেছি এবং অ্যাক্সেস.লগ.90.gz এখন পর্যন্ত সর্বশেষ পরিবর্তন হয়েছে। Access.log.91.gz মুছে হয়েছে (logrotate যেমন মাত্র 90 রাখে), কিন্তু নয়> 91. সুতরাং johnshen64 অধিকার, আপনি কিছু> 2. অপসারণ করতে হবে
Yvan

এটি কীভাবে স্বয়ংক্রিয়ভাবে মোকাবেলা করতে হবে তার একটি টিপস, যেমন অনেক সার্ভারে কনফিগারেশন পরিচালনার মাধ্যমে: সার্ভারফল্ট.com
মার্টিজন হিমেলস ২:3

-3

প্রত্যয় .gz সহ লগগুলি বিবেচিত হয় না কারণ আপনি নির্দিষ্ট করেছেন: /var/log/apache2/*.log

সুতরাং 2 .log এবং সমস্ত .gz ফাইল রয়ে গেছে।

এই পরিবর্তন এখানে

/ var / লগ / অ্যাপাচি 2 / ** লগ * বা কিছু নিয়মিত অভিব্যক্তি।


দুঃখিত লগ করার আগে কেবল একটি
নক্ষত্র

2
তারকাচিহ্ন সমস্যার জন্য, আপনি আপনার পোস্ট সম্পাদনা করতে পারেন। আরও সাধারণভাবে, আপনি কেন গৃহীত উত্তরটি ভুল বলে মনে করেন? লোগ্রোটেট বেস নাম ফাইলগুলি চায় এবং প্রয়োজন হিসাবে .gz সংযোজন নিয়ে ডিল করে।
Law29

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