修改conf/nginx.conf文件,自定义输出的日志格式,地址及名称,部分改动如下

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

   #将日志保存到logs/test1.log下
    access_log logs/test1.log main;

创建日志文件的目录

[root@localhost nginx]# mkdir datalogs

编写shell脚本用来将日志文件定时改名并备份到指定目录 ,在sbin下创建log.sh脚本如下

#安装nginx的基目录
BASE_DIR=/usr/local/nginx

#当前日志文件的文件名

BASE_FILE_NAME=test1.log

#当前日志文件的路径

CURRENT_PATH=$BASE_DIR/logs

#备份文件路径
BAK_PATH=$BASE_DIR/datalogs

#当前文件全路径

CURRENT_FILE=$CURRENT_PATH/$BASE_FILE_NAME

#备份时间
BAK_TIME=`/bin/date -d yesterday +%Y%m%d%H%M`

#备份文件全路径
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

 

更改log.sh shell脚本权限为对所有用户可读可写可执行

[root@localhost sbin]# chmod 777 log.sh

crontab -e定时执行shell命令,每分钟执行一次shell命令(备份操作)

*/1 * * * * sh /usr/local/nginx/sbin/log.sh

备份成功如下:

 

版权声明:本文为coder-lichao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/coder-lichao/p/10945933.html