init
This commit is contained in:
48
logrotate.sh
Executable file
48
logrotate.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/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
|
||||
|
||||
Reference in New Issue
Block a user