49 lines
1.8 KiB
Bash
Executable File
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
|
|
|