Nginx的定时任务与自动切割

明确:
如果这个网站的访问量比较大,那么一天下来 nginx日志可能会特别的大,所以当出现这种情况呢,如果
把每天的日志都存在同一个日志文件里,会使你的日志文件大到让你怀疑人生,同时也不好管理。所以就
希望每天在一个固定的时间来产生一个新的文件来存储当天的日志,这样就方便管理了很多。 思路:就是使用 定时任务 + USER1信号量来控制Nginx重新生成新的日志文件 此处需要shell脚本(shell脚本只要记住丫的声明就没啥了),与定时任务的相关知识

linux的date命令:

date:查看当前年月日,但不是格式化的,

date -d yesterday : 查看昨天的年月日 是这样形式的 "Fri Apr 13 00:06:06 PDT 2018"

date -d yesterday +'%Y%m%d' : 格式化的昨天的日期,是这样的:20180413 (人类能看懂了)

date -s '2018-4-14 00:09:00' 然后执行 clock -w 命令:修改linux的系统时间

  • 1 开始实现定时任务

      ① 在/usr/local/nginx/ 下建data文件夹,用于存储每天产生的日志文件
    命令:[root@localhost nginx]# mkdir /data
    [root@localhost nginx]# cd /data/
    [root@localhost data]# vim runlog.sh //建个runlog.sh文件用于写shell脚本的定时任务

我们先来测试一下,写个简单的shell脚本,返回昨天的年月日



使用命令:sh runlog.sh 来执行脚本,查看返回结果

    ② 正式编辑runlog.sh文件

	    #!/bin/bash
LOGPATH=/usr/local/nginx/logs/human.com.access.log //nginx产生的日志
BASEPATH=/data/$(date -d yesterday +%Y%m) //每天产生的日志 按照月份 进行存放
mkdir -p $BASEPATH //创建月份文件夹
bak=$BASEPATH/$(date -d yesterday +%d%H%M).human.com.access.log //将每天产生的日志放在对应的月份下
mv $LOGPATH $bak //将nginx产生的日志 剪切 到bak中
touch $LOGPATH //重新创建 human.com.access.log 日志
kill USER1 'cat /usr/local/nginx/logs/nginx.pid' //重复日志

如图:

    ③ 使用命令 :crontab -e 创建时钟
*/1 * * * * sh /data/runlog.sh
依次:分 时 日 月 周

如图:

以上日志的定时切割准备完毕,下面开始测试:

回到data目录下: 使用ls命令 查看 出现 201804 这个文件夹

进入 2101804 目录下,每隔一分钟执行一次 ls 命令:

OK!定时的日志切割完成,目前为测试方便,定时为一分钟执行一次日志切割,生产环境中可对 定时器 自行设置!

最新文章

  1. embedding mono实战笔录(一)
  2. 基于SSM的分页
  3. vs2015 企业版 专业版 密钥
  4. bzoj4152 [AMPPZ2014]The Captain
  5. WPF 视图分组排序
  6. SSAS使用MDX生成脱机的多维数据集CUB文件
  7. OpenStack swift安装
  8. COJN 0483 800501求最大非空子矩阵
  9. JSP验证码
  10. Binder机制,从Java到C (大纲)
  11. java 流详解
  12. footer固定在页面底部的实现方法总结
  13. Auth模块、Forms组件
  14. 从零开始学安全(二十六)●利用Nmap目标的本版进行探测
  15. Coursera, Machine Learning, Neural Networks: Representation - week4/5
  16. PXE(preboot execution environment):【网络】预启动执行环节:安装 debian 9系列:成功
  17. js 鼠标拖拽元素
  18. arrow
  19. beego生成 api 项目 && api 文档
  20. 【python】使用py3-bencode打开torrent文件

热门文章

  1. ajax获取后台数据渲染(整片文章不分段落)解决方案,要使用htmL方式输出
  2. php计算几分钟前、几小时前、几天前的几个函数
  3. JQuery实现表格自动增加行,对新行添加事件
  4. Gym 101873C - Joyride - [最短路变形][优先队列优化Dijkstra]
  5. MySQL 大表优化方案(长文)
  6. java异常处理解决方案
  7. 17.4-uC/OS-III消息管理(任务消息队列使用)
  8. 5、jeecg 笔记之 minidao 条件判断
  9. QCon2019全球软件开发大会广州站即将来袭
  10. Asianux 7.3安装Oracle 11.2.0.4单实例体验