mirror of https://github.com/tLDP/LDP
67 lines
1.5 KiB
Bash
67 lines
1.5 KiB
Bash
#!/bin/bash
|
|
# archiveweblogs.sh v1.0
|
|
|
|
# Troy Engel <tengel@fluid.com>
|
|
# Slightly modified by document author.
|
|
# Used with permission.
|
|
#
|
|
# This script will preserve the normally rotated and
|
|
#+ thrown away weblogs from a default RedHat/Apache installation.
|
|
# It will save the files with a date/time stamp in the filename,
|
|
#+ bzipped, to a given directory.
|
|
#
|
|
# Run this from crontab nightly at an off hour,
|
|
#+ as bzip2 can suck up some serious CPU on huge logs:
|
|
# 0 2 * * * /opt/sbin/archiveweblogs.sh
|
|
|
|
|
|
PROBLEM=66
|
|
|
|
# Set this to your backup dir.
|
|
BKP_DIR=/opt/backups/weblogs
|
|
|
|
# Default Apache/RedHat stuff
|
|
LOG_DAYS="4 3 2 1"
|
|
LOG_DIR=/var/log/httpd
|
|
LOG_FILES="access_log error_log"
|
|
|
|
# Default RedHat program locations
|
|
LS=/bin/ls
|
|
MV=/bin/mv
|
|
ID=/usr/bin/id
|
|
CUT=/bin/cut
|
|
COL=/usr/bin/column
|
|
BZ2=/usr/bin/bzip2
|
|
|
|
# Are we root?
|
|
USER=`$ID -u`
|
|
if [ "X$USER" != "X0" ]; then
|
|
echo "PANIC: Only root can run this script!"
|
|
exit $PROBLEM
|
|
fi
|
|
|
|
# Backup dir exists/writable?
|
|
if [ ! -x $BKP_DIR ]; then
|
|
echo "PANIC: $BKP_DIR doesn't exist or isn't writable!"
|
|
exit $PROBLEM
|
|
fi
|
|
|
|
# Move, rename and bzip2 the logs
|
|
for logday in $LOG_DAYS; do
|
|
for logfile in $LOG_FILES; do
|
|
MYFILE="$LOG_DIR/$logfile.$logday"
|
|
if [ -w $MYFILE ]; then
|
|
DTS=`$LS -lgo --time-style=+%Y%m%d $MYFILE | $COL -t | $CUT -d ' ' -f7`
|
|
$MV $MYFILE $BKP_DIR/$logfile.$DTS
|
|
$BZ2 $BKP_DIR/$logfile.$DTS
|
|
else
|
|
# Only spew an error if the file exits (ergo non-writable).
|
|
if [ -f $MYFILE ]; then
|
|
echo "ERROR: $MYFILE not writable. Skipping."
|
|
fi
|
|
fi
|
|
done
|
|
done
|
|
|
|
exit 0
|