Files
scripts-conlxsyslog03/logrotate.sh
conetadm 5718e70f15 init
2024-11-14 21:11:06 +01:00

49 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
# .noarch dateien werden geleert und nicht archiviert
# .log dateien werden rotiert und die rotierten dateien archiviert
# .dontrotate dateien werden nicht angefasst
date=`date +"%Y-%m-%d_%H-%M"`
# in tmp verzeichnis springen
# falls spätere verzeichniswechsel scheitern werden nicht versehentlich Daten gelöscht
cd /tmp
logdir=/syslog
oldlogdir=/syslog/rotate
mkdir -p $logdir
mkdir -p $oldlogdir
######################################################################################################
# nicht zu archivierende logs leeren
######################################################################################################
echo "leere logs die nicht archiviert werden"
cd $logdir
for I in `ls *.noarch`; do :> $I; done
######################################################################################################
## logs packen, archivieren und ausgangsdateien löschen
######################################################################################################
echo "logs rotieren"
cd $logdir
for I in `ls *.log`; do cp $I $I.rotate; :>$I; done
tar -cvzf $date.tar.gz *.log.rotate
mv $date.tar.gz $oldlogdir
rm *.rotate
######################################################################################################
## archive älter als 30 Tage löschen
######################################################################################################
echo "alte logs löschen"
cd $oldlogdir
find . -mtime +30 -exec rm {} \;
######################################################################################################
# rotierte system logs löschen
######################################################################################################
echo "rotierte system logs löschen"
for I in `find /var/log/ -name "*.gz"`; do rm $I; done