使用logrotate管理nginx日志文件

本文转载自:http://linux008.blog.51cto.com/2837805/555829

描述:linux日志文件如果不定期清理,会填满整个磁盘。这样会很危险,因此日志管理是系统管理员日常工作之一。我们可以使用"logrotate"来管理linux日志文件,它可以实现日志的自动滚动,日志归档等功能。下面以nginx日志文件来讲解下logrotate的用法。

配置:
1、在/etc/logrotate.d目录下创建一个nginx的配置文件"nginx"配置内容如下

#vim /etc/logrotate.d/nginx
/usr/local/nginx/logs/*.log {
daily
rotate 5
missingok
notifempty
sharedscripts
postrotate
    if [ -f /usr/local/nginx/logs/nginx.pid ]; then
        kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
    fi
endscript
}

保存退出。

2、执行logrotate

#/usr/sbin/logrotate -f /etc/logrotate.d/nginx

在/usr/local/nginx/logs目录中会产生
error.log
error.log.1
说明logrotate配置成功。

3、让logrotate每天进行一次滚动,在crontab中添加一行定时脚本。

#crontab -e
59 23 * * *  /usr/sbin/logrotate -f /etc/logrotate.d/nginx

每天23点59分进行日志滚动

4、配置文件说明
daily:日志文件每天进行滚动
rotate:保留最5次滚动的日志
notifempty:日志文件为空不进行滚动
sharedscripts:运行postrotate脚本
下面是一个脚本

postrotate
    if [ -f /usr/local/nginx/logs/nginx.pid ]; then
        kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
    fi
endscript

脚本让nginx重新生成日志文件。

============================简易配置================================

more /etc/logrotate.d/nginx
/usr/local/nginx/logs/access.log {
daily
dateext
rotate 10
missingok
notifempty
copytruncate
}

时间: 2024-12-23 20:05:41

使用logrotate管理nginx日志文件的相关文章

Nginx 日志文件切割

Nginx 是一个非常轻量的 Web 服务器,体积小.性能高.速度快等诸多优点.但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量非常大,不便于管理.当然了,我们也不希望看到这么庞大的一个访问日志文件,那需要手动对这个文件进行切割. 在 Linux 平台上 Shell 脚本丰富,使用 Shell 脚本加 crontab 命令能非常方便地进行切割,但在 Windows 平台上就麻烦一些了,刚才弄了好长时间,就在这里记录整理一下.

大数据技术之_18_大数据离线平台_02_Nginx+Mysql+数据收集+Web 工程 JS/JAVA SDK 讲解+Flume 故障后-如何手动上传 Nginx 日志文件至 HDFS 上

十一.Nginx11.1.介绍11.2.常见其他 Web 服务器11.3.版本11.4.Nginx 安装11.5.目录结构11.6.操作命令十二.Mysql12.1.介绍12.2.关系型数据库(SQL)种类12.3.特征12.4.术语12.4.与非关系型数据库比较(Not Only SQL)12.4.1.种类12.4.2.特征12.4.3.总结十三.数据收集13.1.收集方式13.2.数据的事件类型13.2.1.Launch 事件13.2.2.PageView 事件13.3.Nginx 日志收集

awstats分析nginx日志文件

awstats分析nginx日志文件,将生成的结果(为txt文件)保存在/var/www/awstats目录下,通过apche来 显示生成的结果. nginx的域名为:www.a.com:80 LogFile="/usr/local/mybin/nginx/logs/access.log"  #nginx的日志文件路径 DirData="/var/www/awstats/" #awstats生成结果的保存路径 SiteDomain="www.a.com&q

使用linux服务logrotate归档tomcat日志文件

使用notepad++编辑本地文件 tomcat: /usr/tomcat/logs/catalina.out { copytruncate daily dateext nocompress missingok }   参考下图部署此文件到linux服务器: 使用linux服务logrotate归档tomcat日志文件,布布扣,bubuko.com

nginx(四)初识nginx日志文件

nginx 日志相关指令主要有两条,一条是log_format,用来设置日志格式,另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小,通俗的理解就是先用log_format来定义自己想用的日志格式,然后在用zccess_log定义虚拟主机时或全局日志时 在把定义的log_format 跟在后面: 1.log_format 格式 log_format       name( 格式名字)  格式样式(即想要得到什么样的日志内容) 默认的示例: log_format     m

python分析apache和nginx日志文件输出访客ip列表的代码

把做工程过程中比较好的代码片段做个备份,下面资料是关于python分析apache和nginx日志文件输出访客ip列表的代码. ips = {} fh = open("/var/log/nginx/access.log", "r").readlines() for line in fh: ip = line.split(" ")[0] if 6 < len(ip) <=15: ips[ip] = ips.get(ip, 0) + 1

使用logrotate切割nginx日志

配置:1.在/etc/logrotate.d目录下创建一个nginx的配置文件"nginx"配置内容如下 #vim /etc/logrotate.d/nginx/usr/local/nginx/logs/*.log {dailyrotate 5missingoknotifemptysharedscriptspostrotate    if [ -f /usr/local/nginx/logs/nginx.pid ]; then        kill -USR1 `cat /usr/l

使用Logrotate 切割nginx日志

[[email protected] pang]# cat /etc/logrotate.d/nginx /usr/local/nginx/logs/*log { monthly size=1000M missingok rotate 99 create compress delaycompressnotifempty sharedscripts postrotate [ -f /usr/local/nginx/logs/nginx.pid ] && kill -USR1 `cat /us

通过logrotate轮转nginx日志

对logrotate运行机制的理解如下: 1.由cron来调度执行,脚本位置/etc/cron.daily/logrotate 2.logrotate脚本的默认配置文件/etc/logrotate.conf 3.cron执行logrotate的时间目前未找到确切时间(次此自行定义) 测试中发现因轮转日志日期只能为当前日期,因此nginx日志的轮转定时任务时间只能定于23:59(因cron定时时间格式没有秒,因此23:59后的日志只能放到下一个日期,这点不太理想,不过可以通过脚本来降低误差)有知道