nginx网站日志切割脚本计划任务
计划任务脚本
/root/cronjobs/system/sh/splitNginxAccessLog.sh test
脚本内容
#!/bin/bash
############################# 变量定义 #############################
ROOT_DIR=/root/cronjobs/system
LOG_DIR=${ROOT_DIR}/logs/$(date +%Y%m%d)
SCRIPT_NAME=$(basename "$0" | cut -d '.' -f 1 ) # 当前脚本名
PROJECT_NAME=$1 # 入参 - 项目名
# 防止文件夹不存在,先新建文件夹
if [ ! -d ${LOG_DIR} ];then
mkdir -p ${LOG_DIR}
fi
############################# 入参判断 #############################
if [ "${PROJECT_NAME}" == "" ]; then
echo "error: 请输入完整参数,形如:${SCRIPT_NAME}.php maozhi2"
exit
fi
# 根据项目名匹配对应的日志绝对路径
if [ "${PROJECT_NAME}" == "test" ]; then
ACCESS_LOG_FILENAME="/www/wwwlogs/test.com.log"
else
echo "error: 无法找到对应的日志文件,未知的项目类型"
exit
fi
############################# 逻辑 #############################
# 备份名
DIST_ACCESS_LOG_FILENAME="${ACCESS_LOG_FILENAME}.backup_$(date +%Y%m%d)"
mv ${ACCESS_LOG_FILENAME} ${DIST_ACCESS_LOG_FILENAME}
/www/server/nginx/sbin/nginx -s reload判断 执行脚本中的 test 参数切割指定日志文件
宝塔计划任务

新增判断,脚本修改
# 根据项目名匹配对应的日志绝对路径
if [ "${PROJECT_NAME}" == "test" ]; then
ACCESS_LOG_FILENAME="/www/wwwlogs/test.com.access.log"
elif [ "${PROJECT_NAME}" == "test2" ]; then # 新增的elif条件
ACCESS_LOG_FILENAME="/www/wwwlogs/pc.test2.com.log"
else
echo "error: 无法找到对应的日志文件,未知的项目类型"
exit
fi