#!/bin/sh # Copyright 2009-2011 Holger Levsen (holger@layer-acht.org) # Copyright © 2011-2013 Andreas Beckmann (anbe@debian.org) # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . @sharedir@/piuparts/lib/read_config.sh get_config_value MASTER global master-directory get_config_value SECTIONS global sections # # archive old log files # TOTAL=0 OLDPWD=$(pwd) for SECTION in $SECTIONS ; do test -d $MASTER/$SECTION || continue cd $MASTER/$SECTION mkdir -p pass bugged affected fail mkdir -p archive/pass archive/bugged archive/affected archive/fail test -f archive/stamp || touch -d @0 archive/stamp # start at the epoch touch -d yesterday archive/stamp.new # look back one more day the next time we will be run OUTPUT="" # loop through all packages logs for PACKAGE in $(find pass/ fail/ bugged/ affected/ -name '*.log' -newer archive/stamp | cut -d"_" -f1 | cut -d"/" -f2 | sort -u) ; do # all logs except the last one (|sed '$d' deletes the last line) OLDLOGS=$( ls -tr1 --color=none bugged/${PACKAGE}_*.log affected/${PACKAGE}_*.log fail/${PACKAGE}_*.log pass/${PACKAGE}_*.log 2>/dev/null|sed '$d' ) if [ ! -z "$OLDLOGS" ] ; then if [ -z "$OUTPUT" ] ; then OUTPUT="yes" echo $SECTION fi for LOG in $OLDLOGS ; do TOTAL=$(($TOTAL + 1)) mv -v $LOG archive/$(echo $LOG|cut -d"/" -f1)/ done fi done find archive/ -name '*.log' | nice xargs -P $(nproc) -n 1 -r xz -f if [ -n "$OUTPUT" ] ; then echo echo fi mv archive/stamp.new archive/stamp cd "$OLDPWD" done if [ "$TOTAL" -gt "0" ]; then echo "Archived $TOTAL old logfiles." fi