সময়ের সাথে সাথে আমি কিছু লগ খেয়াল /var/log
যেমন auth
, kern
এবং messages
বিশাল পেয়ে হয়েছে। আমি logrotate
তাদের জন্য এন্ট্রি করেছি:
$ cat /etc/logrotate.d/auth.log
/var/log/kern.log {
rotate 5
daily
}
$ cat /etc/logrotate.d/kern.log
/var/log/kern.log {
rotate 5
daily
}
$ cat /etc/logrotate.d/messages
/var/log/messages {
rotate 5
daily
postrotate
/bin/killall -HUP syslogd
endscript
}
এছাড়াও আমি compress
বিকল্পটি সক্ষম করেছি:
$ grep compress /etc/logrotate.conf
# uncomment this if you want your log files compressed
compress
এই মহান জন্য কাজ করে auth.log
, kern.log
এবং অন্যদের, যার মানে হল ঐ লগ প্রতিটি gzipped এবং আবর্তিত লগ গত 5 দিন সঙ্গে বজায় রাখা হয়। /var/log/messages
তবে সংকুচিত করা হচ্ছে না , ফলে লগের 5 দিনের বেশি উপায় হয়:
$ ls /var/log/messages*
/var/log/messages /var/log/messages-20100213
/var/log/messages-20100201 /var/log/messages-20100214
/var/log/messages-20100202 /var/log/messages-20100215
/var/log/messages-20100203 /var/log/messages-20100216
/var/log/messages-20100204 /var/log/messages-20100217
/var/log/messages-20100205 /var/log/messages-20100218
/var/log/messages-20100206 /var/log/messages-20100219
/var/log/messages-20100207 /var/log/messages-20100220
/var/log/messages-20100208 /var/log/messages-20100221
/var/log/messages-20100209 /var/log/messages-20100222
/var/log/messages-20100210 /var/log/messages-20100223
/var/log/messages-20100211 /var/log/messages-20100224
/var/log/messages-20100212
সার্ভারফল্টের অন্য একটি logrotate
প্রশ্নে যেমন ব্যাখ্যা করা হয়েছে , পুরানো লগগুলি (সম্ভবত সম্ভবত) সরানো হচ্ছে না কারণ প্রতিটি ফাইলের জন্য ফাইলের সমাপ্তি আলাদা are এটি উপস্থিত হতে পারে কারণ ফাইলগুলি জিপিপ করা হচ্ছে না।
/var/log/messages
আমার অন্যান্য সমস্ত লগ ফাইলের মতো গত 5 দিনের লগগুলি সংক্ষেপিত এবং ঘোরানোর জন্য আমি কী করতে পারি ? আমি কী মিস করছি?
সম্পাদনা 1 : প্রথম দম্পতির উত্তরে অনুরোধ হিসাবে অতিরিক্ত তথ্য।
আমি জেন্টু লিনাক্স চালাচ্ছি। আমার /etc/logrotate.conf
ফাইল:
$ cat /etc/logrotate.conf
# $Header: /var/cvsroot/gentoo-x86/app-admin/logrotate/files/logrotate.conf,v 1.3 2008/12/24 20:49:10 dang Exp $
#
# Logrotate default configuration file for Gentoo Linux
#
# See "man logrotate" for details
# rotate log files weekly
weekly
#daily
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
compress
# packages can drop log rotation information into this directory
include /etc/logrotate.d
notifempty
nomail
noolddir
# no packages own lastlog or wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
/etc/logrotate.d
উপরে বর্ণিত আমার কাস্টম কনফিগারেশন ফাইলগুলিতে সেই প্যাকেজগুলি দ্বারা ইনস্টল করা মাইএসকিএল, আরএসসিএন, ইত্যাদির কনফিগারেশন রয়েছে।
আমার মূল crontab
শূন্য:
$ sudo crontab -l
no crontab for root
আমি সব চেক করা /etc/cron.{daily,hourly,monthly,weekly}
কিছু সম্পর্কিত syslog- র জন্য, এবং সেখানে কোনো স্ক্রিপ্ট rotates এর /var/log/syslog
এবং /var/log/auth.log
।
এর পরে, আমি একটি তৈরি /var/log/messages
-only logrotate
কনফিগ ফাইল হিসাবে CarpeNoctem দ্বারা প্রস্তাবিত:
$ cat logrotate-messages
weekly
rotate 4
create
dateext
compress
notifempty
nomail
noolddir
/var/log/messages {
rotate 5
daily
postrotate
/bin/killall -HUP syslogd
endscript
}
তারপরে আমি logrotate
ম্যানুয়ালি দৌড়েছি :
$ logrotate -d logrotate-messages -f
reading config file logrotate-messages
reading config info for /var/log/messages
Handling 1 logs
rotating pattern: /var/log/messages forced from command line (5 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/messages
log needs rotating
rotating log /var/log/messages, log->rotateCount is 5
dateext suffix '-20100224'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
renaming /var/log/messages to /var/log/messages-20100224
creating new /var/log/messages mode = 0644 uid = 0 gid = 0
running postrotate script
running script with arg /var/log/messages : "
/bin/killall -HUP syslogd
"
compressing log with: /bin/gzip
$ which gzip
/bin/gzip
$ file /bin/gzip
/bin/gzip: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
উপরের লগ অনুসারে, logrotate
লগটিকে / বিন / জিজিপ দিয়ে সংকুচিত করুন, তবে আমি কোনও সংকোচিত বার্তাগুলি ফাইল দেখতে পাচ্ছি না /var/log
। এছাড়াও, পুরানো ঘোরানো ফাইলগুলির জন্য গ্লোববিং ব্যর্থ।
সম্পাদনা 2 : পুরানো ফাইলগুলিতে প্রত্যয় যুক্ত করার logrotate
পরে রানের ডিবাগ আউটপুট যুক্ত করা।.gz
/var/log/message-*
আমরা এর সাথে শুরু করি:
$ ls /var/log/messages*
/var/log/messages /var/log/messages-20100222.gz
/var/log/messages-20100219.gz /var/log/messages-20100223.gz
/var/log/messages-20100220.gz /var/log/messages-20100224.gz
/var/log/messages-20100221.gz
তারপরে logrotate
আমাদের কাস্টম কনফিগারেশন ফাইলটি দিয়ে চালান :
$ logrotate -d logrotate-messages -f
reading config file logrotate-messages
reading config info for /var/log/messages
Handling 1 logs
rotating pattern: /var/log/messages forced from command line (5 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/messages
log needs rotating
rotating log /var/log/messages, log->rotateCount is 5
dateext suffix '-20100224'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
removing /var/log/messages-20100219.gz
removing old log /var/log/messages-20100219.gz
destination /var/log/messages-20100224.gz already exists, skipping rotation
এবার, logrotate
গ্লোব সাফল্য পেয়েছে এবং এটি সরাতে চাইছে ষষ্ঠ সংক্ষেপিত লগফিলটিকে। ফাইলটি আসলে সরানো হয়নি; আমার ধারণা এটি কারণ আমরা ডিবাগ মোডে চলছি।
আমি কৌতূহল করছি এর delaycompress
বিকল্পটি সক্ষম করা /var/log/messages
সাহায্য করবে কিনা । আমি এটি সক্ষম করেছি এবং পরদিন সকালে ফলাফলগুলি পরীক্ষা করব।