目录
日志切割文件
在nginx目录下创建文件夹
mkdir datalogs
日志脚本
log.sh
# nginx 根目录
BASE_DIR=/usr/local/nginx
# 定义要复制日志的文件名 这个日志文件在 ~/nginx/logs/~.log
BASE_FILE_NAME=bufanli.access.log
# 定义要复制日志文件的目录
CURRENT_PATH=$BASE_DIR/logs
# 定义切割文件存放的目录 需要在根目录创建一个文件目录路径
BAK_PATH=$BASE_DIR/datalogs
# 定义要复制的文件路径
CURRENT_FILE=$CURRENT_PATH/$BASE_FILE_NAME
# 定义回滚时间用来拼接日志名称 测试使用加%H-%M-%S 可以去掉 "%Y-%m-%d"
BAK_TIME=$(date -d "yesterday" +"%Y-%m-%d:%H-%M-%S")
# 输出一下
echo $BAK_TIME
# 拼接复制的文件名
BAK_FILE=$BAK_PATH/$BAK_TIME-$BASE_FILE_NAME
# 输出一下
echo $BAK_FILE
# 停掉nginx
$BASE_DIR/sbin/nginx -s stop
# 移动要复制的文件到切割文件目录
mv $CURRENT_FILE $BAK_FILE
# 启动nginx
$BASE_DIR/sbin/nginx
可以放在 nginx下的sbin目录下,赋权
执行以下测试看一下有没有异常 如果有异常建议手动touch log.sh 文件 手动编写以下,因为有有时候复制会出现编码问题
./log.sh
定时任务对脚本进行定时调度
打开定时job文件
crontab -e
*/1 * * * * 每分钟测试使用 0 2 * * * 每天凌晨两点执行
*/1 * * * * sh /usr/local/nginx/sbin/log.sh
执行结果