实现nginx日志按照时间分割存储

backups_log.sh

#设置log日志的存储地址
LOG_PATH=/home/soft/nginx/logs
#设置历史日志的存储地址
HISTORY_LOG_PATH=/home/soft/nginx/history_logs
#获取分割日志时所需要的时间当做日志文件名称
TIME=$(date +%Y-%m-%d)
#将当前日志备份到指定存储目录
mv ${LOG_PATH}/access.log ${HISTORY_LOG_PATH}/access_log/${TIME}_access.log
#发送信号重新打开日志文件
kill -USR1 $(cat ${LOG_PATH}/nginx.pid)

将sh脚本加入到定时任务中,每天23:59执行

crontab -e

添加定时任务

  * * * /home/sh/backups_log.sh

注意事项:

1.在没有执行kill -USR1 nginx_pid 之前,即便已经对文件执行了mv命令也只是改变了文件的名称,nginx还是会向新命名的文件中照常写入日志数据。原因在于linux系统中,内核是根据文件描述符来找文件的

2.添加定时任务后如果定时任务没有起作用,则使用 ps -aux | grep cron 确认下服务是否已经开启

3. -USR1 是进程间通信的信号中的一种,至于nginx进程接收到该信号做什么操作是它内部定义的,除此之外我们可以使用 kill -l 确认liunx中包含哪些信号

最新文章

  1. 【初学python】使用python调用monkey测试
  2. Red Hat5.5 install Generic mysql-5.7.10
  3. JScrollBar
  4. 自已实现的async 只实现了一部分功能
  5. zw版_zw中文增强版Halcon官方Delphi例程
  6. Unity NGUI 网络斗地主 -发牌 脚本交互
  7. Android智能手机屏蔽电话与屏蔽安装软件功能
  8. BZOJ 1529: [POI2005]ska Piggy banks( 并查集 )
  9. 8天玩转并行开发——第二天 Task的使用
  10. Arcgis for Javascript之featureLayer图和属性互操作性
  11. [置顶] Ants(Northeastern Europe 2007)
  12. Servlet源码初探
  13. ABP入门系列(19)——使用领域事件
  14. 【Python】 日志管理logging
  15. HashMap方法介绍
  16. linux su失败:无法设置用户ID:资源暂时不可用
  17. Zabbix常见触发器表达式
  18. 玩转postman(一)-----基础
  19. 6款漂亮HTML CSS样式用户留言表单
  20. python-kafka之理论篇

热门文章

  1. HTTP请求客户端工具类
  2. Eclipse中修改某个java项目的jdk版本【我】
  3. flutter的生命周期
  4. 基于Docker+Jenkins实现自动化部署
  5. 《Hadoop大数据技术开发实战》学习笔记(一)
  6. java spring事务管理相关
  7. jquery-easyui中改变【确认框控件的按钮文字】($.messager.confirm)
  8. zabbix 部署包安装
  9. 乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符
  10. S2. Android 常用控件