12345678910111213141516171819202122232425262728293031323334 |
- ROTATE=30
- DATE=$(date +%d.%m.%y-%H:%M:%S)
- LOGS=( $* )
- CONF='/etc/logrotate.conf'
- [[ -e $CONF ]] && . $CONF
- function err {
- printf %s": "%s"\n" "$(basename $0)" "$1"; exit 1
- }
- [[ -z $LOGS ]] && err 'missing input file'
- [[ ! -e $LOGS ]] && err 'input file not readable'
- for FILE in ${LOGS[@]}; do
-
- N=( $(ls -1 -r $FILE*.gz &>/dev/null || echo '') )
- [[ ${#N[@]} -gt $((ROTATE-1)) ]] && rm -f ${N[@]:$((ROTATE-1)) }
-
- gzip -f $FILE || err 'failed to gzip file'
- mv $FILE.gz "$FILE""$DATE".gz || err 'failed to rename archive'
- done
- exit 0
|