ログのローテーション

#!/bin/sh
#logrotate.sh

FILES="$HOME/log/foo $HOME/log/bar"
MAX_LEVEL=6
MV=mv
COMPRESS_CMD=gzip
COMPRESS_SFX=.gz

for file in ${FILES}; do
    level=${MAX_LEVEL}

    while [ ${level} -gt 1 ]; do
        dst="${file}.${level}${COMPRESS_SFX}"
        level=$(expr ${level} - 1)
        src="${file}.${level}${COMRESS_SFX}"
        [ -f "${src}" ] && ${MV} "${src}" "${dst}" 
    done

    src="${file}"
    dst="${file}.1"
    [ -f "${src}" ] && ${MV} "${src}" "${dst}"
    > "${src}"

    if [ -f "${dst}" ]; then
        ${COMPRESS_CMD} "${dst}"
    fi
done