123456789101112131415161718192021222324252627282930313233343536373839 |
- _ROTATE=30
- _DATE=$(date +%d.%m.%y-%H:%M:%S)
- _LOGS=( $* )
- _CONF='/etc/logrotate.conf'
- [[ -e $_CONF ]] && . $_CONF
- function err {
- local _ERR=$?
- printf %s": "%s"\n" "$(basename $0)" "$1"
- exit $_ERR
- }
- [[ -n $_LOGS ]] || err 'missing input file'
- [[ -e $_LOGS ]] || err 'input file not readable'
- for _FILE in ${_LOGS[@]}; do
-
- _NUM=( $(ls -1 -r $_FILE*.gz &>/dev/null || echo '') )
- [[ ${#_NUM[@]} -gt $((_ROTATE-1)) ]] && rm -f ${_NUM[@]:$((_ROTATE-1)) }
-
- gzip -f $_FILE || err 'failed to gzip file'
- mv $_FILE.gz "$_FILE"-"$_DATE".gz || err 'failed to rename archive'
- done
- exit $?
|