mir3c/squashfs-root/usr/sbin/syslog_sync.sh

52 lines
848 B
Bash
Executable File

#!/bin/sh
redundancy_mode=`uci get misc.log.redundancy_mode`
if [ "$redundancy_mode" = "1" ]; then
cat /tmp/messages >> /data/usr/log/messages
> /tmp/messages
sync
exit
fi
# for r1cm, etc
LOGGEN=5
# logfile
TMP_LOG=/tmp/messages
LOG=/data/usr/log/messages
INTER_LOG=/data/usr/log/messages.0
mkdir -p /data/usr/log
#
export LANG=C
#
. /lib/lib.scripthelper.sh
#
cat $TMP_LOG >> $LOG
> $TMP_LOG
sync
# we need to do the rotation
i=$LOGGEN
while [ $i -gt 0 ]; do
# rotate one step
newer=$(($i-1))
# check if we need to compress
if [ -f $LOG.$newer.gz ]; then
# already compressed - just rotate
mv $LOG.$newer.gz $LOG.$i.gz
elif [ -f $LOG.$newer ]; then
# need to compress
mv $LOG.$newer $LOG.$i
gzip $LOG.$i
fi
# next do the previous generation
i=$(($i-1))
done
# rotate file: messages
mv $LOG $INTER_LOG
gzip $INTER_LOG