#! /bin/sh # /etc/logbackup.d/skeleton # logbackup fragment for sysklogd files # # This script allows rotation and backup of log files, # on systems where /var/log is mounted as tmpfs. # # It is called by /etc/init.d/logbackup: # - at system startup to retreive backed-up logs to /var/log # - on a daily basis to rotate and back-up the logs on the hard-drive # - at system halt or reboot to back-up the logs before the # tmpfs is unmounted # # This script is a template that should be copied and edited to handle # customized log files. NAME="sysklogd" DIR_LOG="/var/log" DIR_BAK="/var/log.real" # PUT THE LIST OF LOG FILES TO BE HANDLED HERE #LOGS= # PUT SOME CUSTOM COMMANDS HERE IF NEEDED # EDIT THE FOLLOWING FUNCTIONS AS NEEDED # Update the list of logbackup-handled files [ -r /etc/logbackup.conf ] && . /etc/logbackup.conf if [ "$LOGBACKUP_INCLUDED" != "" ]; then echo $LOGS | xargs -n 1 echo >> $LOGBACKUP_INCLUDED fi # Rotate logs (in $DIR_LOG) do_rotate() { logger -i -t "logbackup" "($NAME) Rotate logs" # PUT HERE THE ACTUAL COMMANDS TO ROTATE THE LOGS return 0 } # Retrieve backed-up logs do_retrieve() { logger -i -t "logbackup" "($NAME) Retrieve backed-up logs" cd $DIR_LOG for LOG in $LOGS; do LOGNAME=`basename $LOG` [ -r $DIR_BAK/$LOGNAME.0 ] && cp -a $DIR_BAK/$LOGNAME.* $DIR_LOG done return 0 } do_backup() { logger -i -t "logbackup" "($NAME) Back-up logs" cd $DIR_LOG for LOG in $LOGS; do LOGNAME=`basename $LOG` [ -r $DIR_LOG/$LOGNAME.0 ] && cp -a $DIR_LOG/$LOGNAME.* $DIR_BAK done return 0 } case "$1" in retrieve) do_retrieve ;; backup) do_retrieve do_rotate do_backup ;; *) echo "Usage: $SCRIPTNAME {retrieve|backup}" >&2 exit 3 ;; esac