logrotate日志不轮转呢?_新日志size0
程序,要管理log,留作日后的后续功能处理和统计和领导需要。因为懒得写,所以直接用了syslog函数,把log交给rsyslog去写了。然后用logrotate每天做日志轮转。
两种log分别发送到了local6.info和local6.notice。 #define logInfo(...) pthread_mutex_lock(&logLock);\
logLen=snprintf(logBuf,sizeof(logBuf),__VA_ARGS__);\
syslog(LOG_INFO,logBuf,logLen);\
pthread_mutex_unlock(&logLock) #define logUpload(...) pthread_mutex_lock(&logLock);\
logLen=snprintf(logBuf,sizeof(logBuf),__VA_ARGS__);\
syslog(LOG_NOTICE,logBuf,logLen);\
pthread_mutex_unlock(&logLock)
...
openlog("zhuowang_SS",LOG_PID|LOG_CONS,LOG_LOCAL6);
...
在/etc/rsyslog.conf里添加了
local6.info /var/log/zw_info.log
local6.notice /var/log/zw_notice.log
在/etc/logrotate.d/建新文件zw_log [root@localhost logrotate.d]# cat zw_log
/var/log/zw_notice.log
/var/log/zw_info.log
{
nocompress
daily
rotate 21
} 意为他俩不压缩、每天轮转、保留21份。
但是运行却发现每天虽然在生成新日志文件,但是日志还是被写到旧文件里去。好好研究了一下发现这错误犯的真2,rsyslog和logrotate根本就是两个软件包两回事嘛。虽然logrotate重命名了当前log,删了旧log,但是rsyslog不知道哇,打开的文件还是旧文件嘛。当然写的就是旧文件了嘛。 经探索后发现这个问题有两种解决办法。
1.copytruncate,拷贝后截断。
把当前log拷贝后截断。可以理解为把内容拷贝走作为备份,然后清空当前文件。但是这有一个问题就是拷贝和截断之间会有时间差,存在丢数据的可能。
2.给rsyslog发信号。重新打开log文件。
在/etc/logrotate.d/zw_log里添加
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
postrotate表示在日志轮转后执行
sharedscripts表示zw_notice.log、zw_info.log两个日志共享这个脚本,就是说他俩轮转完成后只执行一次这个脚本,默认情况下是每个脚本轮转完成就执行一次
logrotate日志不轮转呢?_新日志size0的更多相关文章
- 其他信息: 未找到源,不过,未能搜索部分或所有事件日志。 若要创建源,您需要用于读取所有事件日志的权限以确保新的源名称是唯一的。 不可访问的日志: Security。
其他信息: 未找到源,不过,未能搜索部分或所有事件日志. 若要创建源,您需要用于读取所有事件日志的权限以确保新的源名称是唯一的. 不可访问的日志: Security. System.Diagnos ...
- 异常详细信息: System.Security.SecurityException: 未找到源,不过,未能搜索部分或所有事件日志。 若要创建源,您需要用于读取所有事件日志的权限以确保新的源名称是唯一的。 不可访问的日志: Security。
“/”应用程序中的服务器错误. 安全性异常 说明: 应用程序尝试执行安全策略不允许的操作.要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别. 异常详细信息: Sy ...
- SQL Server中的事务日志管理(7/9):处理日志过度增长
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- SQL Server中的事务日志管理(8/9):优化日志吞吐量
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- SQL Server中的事务日志管理(3/9):事务日志,备份与恢复
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- SQL Server中的事务日志管理(2/9):事务日志架构概述
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- SQL Server中的事务日志管理(1/9):事务日志概况
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- nginx日志切割并使用flume-ng收集日志
nginx的日志文件没有rotate功能.如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件.第一步就是重命名日志文件,不用担心重命名后nginx找不到日 ...
随机推荐
- 【转】从源码来分析ListView
原文:http://yanmingming.sinaapp.com/?p=1251 原文其实不叫这个名字,本文对于原文有一定的修改,觉得这个名字比较适合本篇. 一.ListView 的工作原理 Ada ...
- 如何选择JAVA培训机构,兼议什么样的人适合培训机构
首先,利益相关,本人就是培训机构创办者兼讲师,但这不妨碍我对此发表看法. 我们先来看什么样的人适合培训机构?要回答这个问题,需要先换个角度.这个角度就是,你学习一门语言的动机是什么?99%的人的回答是 ...
- git error: RPC failed; curl 56 GnuTLS recv error 解决方案
// git 报错情况: error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properl ...
- State of Serverless
Some quick thoughts from Serverlessconf, Austin in April 2017 I wanted to take a bit of time to writ ...
- mysqldump参数详细说明
Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数 参数说明 --all-databases , -A 导出全部数据库. mysqldump -uroot -p --al ...
- spring boot1.5以上版本@ConfigurationProperties取消location注解后的替代方案 cannot resolve method location
问题 在spring boot(版本1.5.1.RELEASE)项目中,当准备映射自定义的配置文件属性到类中的时候,发现原本的@ConfigurationProperties注解已将location属 ...
- macOS Sierra10.12.5 显示允许任何来源
在终端输入:sudo spctl --master-disable即可.
- [leetcode]Anagrams @ Python
原题地址:https://oj.leetcode.com/problems/anagrams/ 题意: Given an array of strings, return all groups of ...
- asp.net使用jquery.form实现图片异步上传
首先我们需要做准备工作: jquery下载:http://files.cnblogs.com/tianguook/jquery1.8.rar jquery.form.js下载:http://files ...
- MyBatis动态SQL foreach标签实现批量插入
需求:查出给定id的记录: <select id="getEmpsByConditionForeach" resultType="com.test.beans.Em ...