แหล่งแลกเปลี่ยนความรู้-ประสบการณ์ FreeBSD สำหรับคนไทย: "logrotate เพื่อ บีบอัด squid los
thawinth
Posted : 2008-09-25 10:03:27
ศิษย์น้อยฝึกวิชา
Sex :
Post : 159
สมาชิกลำดับที่ : 356
(1.) Make and Install from ports:
cd /usr/ports/sysutils/logrotate
(2.) Configure and Compile
make install clean
If all goes well, we are done and logrotate is installed.
(3.) Create a new logrotate.conf file.
vi /usr/local/etc/logrotate.conf
# Added the following to rotate Apache and Squid logs
# see “man logrotate” for details
# rotate log files weekly
#weekly
daily
# keep 4 weeks worth of backlogs
rotate 7
# send errors to root
#errors root
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
compress
# RPM packages drop log rotation information into this directory
include /usr/local/etc/logrotate.d
/var/log/lastlog {
monthly
rotate 12
}
# system-specific logs may be configured here
(4.) Create a directory for specific logrotate files
mkdir -p /usr/local/etc/logrotate.d
(5.) First, create a logrotate file for Squid to rotate it’s access.log files for 90 days and cache.log for 7 days.
cd /usr/local/etc/logrotate.d/
vi /usr/local/etc/logrotate.d/squid
#Copy and paste the following
/var/log/squid/access.log {
daily
rotate 90
copytruncate
compress
notifempty
missingok
}
/var/log/squid/cache.log {
daily
rotate 7
copytruncate
compress
notifempty
missingok
}
(6.) Create the necessary directories and files for logrotate and test and debug logrotate
mkdir /var/lib/
touch /var/lib/logrotate.status
/usr/local/sbin/logrotate -d /usr/local/etc/logrotate.conf
/usr/local/sbin/logrotate -f /usr/local/etc/logrotate.conf
(7.) Next, we will rotate and manage Apache logs
vi /usr/local/etc/logrotate.d/apache
#Add the following to rotate and manage Apache access_log and error_log for 30 days.
#Note: If your Apache logs may be in a different directory, simply change the directory.
/var/log/apache/access_log {
daily
rotate 30
copytruncate
compress
notifempty
missingok
}
/var/log/apache/error_log {
daily
rotate 30
copytruncate
compress
notifempty
missingok
}
If all goes well, that’s it. Your Apache and Squid logs should be rotated.
The last thing is to add an entry into crontab and letting the cron daemon rotate your Apache and Squid logs automatically.
(8.) Automating logrotate using crontab
vi /etc/crontab
#Add the following to rotate your logs at 1 AM in the morning
#Logrotate
0 1 * * * root /usr/local/sbin/logrotate /usr/local/etc/logrotate.conf > /dev/null 2>&1
That’s it. Your Apache and Squid logs will be rotating without manual intervention!!
Using logrotate on a Debian-4.1 box
(1.) Install the logrotate program
apt-get install logrotate
(2.) Create the necessary directories and files
mkdir -p /var/lib/logrotate/
touch /var/lib/logrotate/status
mkdir -p /etc/logrotate.d/
(3.) Create a new logrotate.conf
vi /etc/logrotate.conf
#Copy and paste the following
# see “man logrotate” for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp, or btmp — we’ll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
# system-specific logs may be configured here
(4.) Create the squid logrotate file to rotate and manage access.log for 90 days and cache.log for 7 days.
vi /etc/logrotate.d/squid
#Copy and paste the following
/var/log/squid/access.log {
daily
rotate 90
copytruncate
compress
notifempty
missingok
}
/var/log/squid/cache.log {
daily
rotate 7
copytruncate
compress
notifempty
missingok
}
(5.) Create the Apache logrotate file to rotate and manage access_log for 30 days and error_log for 30days.
vi /etc/logrotate.d/apache
#Copy and paste the following. Note: your apache log’s directory might be different. Simply change the path of your directory.
/var/log/apache/access_log {
daily
rotate 30
copytruncate
compress
notifempty
missingok
}
/var/log/apache/error_log {
daily
rotate 30
copytruncate
compress
notifempty
missingok
}
(6.) Test and debug your logrotate configuration for any errors
/usr/sbin/logrotate -d /etc/logrotate.conf
/usr/sbin/logrotate -f /etc/logrotate.conf
If all goes well, you are good to go.
(7.) Now all that is left is to automate the logrotate process from crontab
vi /etc/crontab
#Copy and paste the following
#Logrotate at 1 AM in the morning
0 01 * * * root /usr/sbin/logrotate /etc/logrotate.conf > /dev/null 2>&1
That’s it! The cron daemon will automatically rotate your Apache and Squid logs at 1 AM on a daily basis.
Happy Log rotating !!!
### จาก web เพื่อบ้านครับ ###
ท่านใครที่เล่น rethad อยู่จะทราบดีครับ"
วันจันทร์ที่ 28 ธันวาคม พ.ศ. 2552
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น