bash 大日志文件切割分离代码
代码语言:bash
所属分类:文件
代码描述:bash 大日志文件切割分离代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
#!/bin/bash # --------------------------------------------------------------------- # 日志文件300M分割,并zip压缩,每个项目仅保留最新30个文件, # 文件格式:项目名称-年月日时分秒.zip # Author : # Date : # Email : # Version : 1.0 # --------------------------------------------------------------------- # 日志目录 LOG_DIR='/log' # 日志文件名称,支持正则表达式,多个使用“,”分隔 FILE_NAME='*.log' # 文件切割最大大小,单位MB MAX_FILE_SIZE=300 # 保留文件数 MAX_FILE_NUM=30 # 压缩包后缀 FILE_SUFFIX=zip # 提示内容 MESSAGE="Usage: $0 LOG_DIR FILE_NAME MAX_FILE_SIZE MAX_FILE_NUM \nFor Example: $0 /log/ nginx.log 100 30" while [ $# -ge 2 ] do case "$1" in -d) LOG_DIR=$2; shift 2;; -f) FILE_NAME=$2; shift 2;; -s) MAX_FILE_SIZE=$2; shift 2;; -n) MAX_FILE_NUM=$2; shift 2;; -t) FILE_SUFFIX=$2; shift 2;; *) echo "Unknown parameter $1." ; shift 2; continue;; esac done if [ -z "${LOG_DIR}" -o ! -d "${LOG_DIR}" ]; then echo "请输入文件所在目录" echo -e ${MESSAGE} exit 1 fi LOG_FILE_SIZE=$(ls ${LOG_DIR}'/'${FILE_NAME} | wc -l) if [ "${LOG_FILE_SIZE}" -eq 0 ]; then echo "请输入文件名" echo -e ${MESSAGE} exit 1 fi if [ -z "${MAX_FILE_SIZE}" ]; then echo "请输入文件以多少MB分割" echo -e ${MESSAGE} exit 1 fi if [ -z "${MAX_FILE_NUM}" ]; then echo "请输入保留多少个压缩文件" echo -e ${MESSAGE} exit 1 fi # ------------------------------------------------- # rolling log file rolling_file () { CUR_TIME=$(date +%Y%m%d%H%M%S) LOG_FILE_LIST=($(ls ${LOG_DIR}/${FILE_NAME})) cd ${LOG.........完整代码请登录后点击上方下载按钮下载查看
网友评论0