一 关于Nginx日志

我们观察nginx安装目录下的nginx.conf

可以看到如下类似信息

#access_log  logs/host.access.log  main;

这说明 该server, 它的访问日志的文件是  logs/host.access.log ,

使用的格式”main”格式.

除了main格式,你可以自定义其他格式.

main格式是什么?

log_format  main  '$remote_addr - $remote_user [$time_local]"$request" '

#                  '$status $body_bytes_sent"$http_referer" '

#                  '"$http_user_agent""$http_x_forwarded_for"';

main格式是我们定义好一种日志的格式,并起个名字,便于引用.

以上面的例子, main类型的日志,记录的 remote_addr.... http_x_forwarded_for等选项.

1: 日志格式 是指记录哪些选项

默认的日志格式: main

log_format  main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent""$http_x_forwarded_for"';

如默认的main日志格式,记录这么几项

远程IP- 远程用户/用户时间 请求方法(如GET/POST) 请求体body长度 referer来源信息

http-user-agent用户代理/蜘蛛 ,被转发的请求的原始IP

http_x_forwarded_for:在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP

2 配置日志格式小例子

配置如下

访问后结果

二 日志切割

切割理由 : 假设一个网站访问量特别大,每天access_log文件有2个G,如果想从文件中查找一下信息,光打开就很慢了,

做日志切割的话,便于维护.

需求描述 : 为每天的日志新建一个当天文件夹,并将当天文件按每分钟一个文件放入到相应的文件夹中.

shell脚本(splitLog.sh)编写如下:

#这里是每分钟切割一次日志的shell脚本
#!/bin/bash
base_path='/usr/local/software/ngnix/install/logs' #定义log基本路径变量
time=$(date -d yesterday +"%Y-%m-%d_%H-%M-%S" )   #时间定义(格式为 : 2016-10-09_23-46-25)
modify_file_name="$time.access.log" #修改的log文件名
today=$(date -d today +"%Y%m%d" ); #今天时间 20161010
today_folder="$base_path/$today"; #今天的文件夹
#如果今天文件夹不存在,则重新创建一个
if [ ! -d "$today_folder" ];
thenmkdir $today_folder
fi
mv $base_path/access.log $today_folder/$modify_file_name #修改名字
kill -USR1 `cat /usr/local/software/ngnix/install/logs/nginx.pid` #平滑关闭nginx,方便日志切割

定时执行该shell

crontab -e 编辑contab命令

*/1 * * * * /usr/local/software/ngnix/install/script/splitLog.sh 指定执行时间

结果图

(4)nginx:日志以及定时切割日志小例子相关推荐

  1. linux 定时切割日志,Linux 定时切割日志任务

    方法一:vi  /etc/crontab 方法二:crontab -e 系统定时任务配置文件: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin M ...

  2. shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志 ...

  3. MySQL慢查询日志每天定时切割

    MySQL慢查询日志每天定时切割 #ubuntu安装cront apt-get install cron cront start #centos安装cront yum -y install croni ...

  4. golang xorm 自定义日志记录器,使用zap实现日志输出、切割日志

    目录 1.准备并下载好需要的包 2. 连接postgresql数据库 3. zap日志工具 4.实现xorm 自定义日志记录器 5.使用 完整代码 1.准备并下载好需要的包 xorm.io/xorm ...

  5. android取消定时任务,android 定时启动\取消小例子

    Intent intent = new Intent("cn.pocketdigi.update.alarm"); intent.setClass(this, AlarmRecei ...

  6. Nginx日志文件的切割

    Nginx日志文件的切割 生产环境中,由于访问日志文件增长速度非常快,日志太大会严重影响服务器效率. 同时,为了方便对日志进行分析和计算,需要对日志文件进行定时切割. 定时切割方式,包括按月切割.按天 ...

  7. Nginx的继续深入(日志轮询切割,重写,负载均衡等)

    Nginx的访问日志轮询切割 通常什么情况Nginx会把所有的访问日志生成到一个制定的访问日志文件access.log里面,但时间一长,日志个头很大不利于日志的分析和处理. 有必要对Nginx日志进行 ...

  8. Nginx日志管理及切割

    1 日志管理 1.1 Nginx日志描述 通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某个服务或server的性能瓶颈等.因此,将 ...

  9. Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)

    文章转自:http://www.osyunwei.com/archives/8998.html 说明: 操作系统:CentOS Mongodb安装目录:/usr/local/mongodb Mongo ...

最新文章

  1. Stanford UFLDL教程 反向传播算法(BP算法)
  2. 树莓派4B Raspbian-buster 更换源
  3. Linux 下 Mysql 区分大小写
  4. 深圳出差 第二天【原创】
  5. Ubuntu下修改root密码
  6. 从零开始理解JAVA事件处理机制(3)
  7. monkey 查找闪退页面的方法
  8. 【NLP】自然语言处理中词性、短语、短语关系标签的具体含义列表
  9. java 64位时间戳转换32位时间戳
  10. Selenium官网教程
  11. 爬虫学习之抓取今日头条街拍美图
  12. Python tolist()用法
  13. java使用egl_EGL 学习
  14. loj10155 数字转换
  15. 基于Android studio 的学生课堂管理app
  16. 电脑蓝屏(你的电脑遇到问题,需要重新启动)
  17. 远程关机和重启电脑的cmd命令
  18. 用计算机弹童年,你的童年电脑记忆里有它们吗?瑞星小狮子、Office曲别针、三维弹球……...
  19. 面试总结——Java高级工程师
  20. 重庆交通大学计算机专业分,重庆交通大学计算机类专业2017年在黑龙江理科高考录取最低分数线...

热门文章

  1. CPU缓存一致性协议MESI - 笔记
  2. 密码学系列之:twofish对称密钥分组算法
  3. linux网络编程--阻塞与非阻塞
  4. idea中怎么忽略(ignore)掉 .idea等文件
  5. flink与flink-client的版本对应
  6. spring与cxf的整合
  7. lostash Timeout executing grok 问题排查
  8. v-if 与v-show 的区别及使用场景
  9. 有一批共n个集装箱要装上2艘载重量分别为C1和C2的轮船,其中集装箱i的重量为wi,且 装载问题要求确定,是否有一个合理的装载方案可将这n
  10. 1026 程序运行时间 (15分)(附四舍五入标准写法)(解题报告)