设为首页 收藏本站
查看: 384|回复: 0

[经验分享] Linux系统使用logrotate进行日志备份

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-3-30 08:50:40 | 显示全部楼层 |阅读模式
Linux系统上日志文件很多很多,系统日志message mail cron 等等以及应用程序的日志和访问日志,在大量的访问下,这些日志文件会飞速增长,占用大量私盘空间,同时消耗IO,目前线上使用shell脚本对nginx和tomcat的access_log以及catalina.out文件通过crontab进行日志分割。


今天偶然想起logrotate,小试了下,还是不错的,记录下。。。
查看下log目录下的日志,可以看到关于crontab的日志被分割了,我们没有定义这个,是什么实现的呢?就是logrotate咯。
1
2
3
4
5
6
ll /var/log/
-rw-------  1 root  root        0 2月  22 03:21 cron-20150301
-rw-------  1 root  root        0 3月   1 03:20 cron-20150308
-rw-------  1 root  root        0 3月   8 03:19 cron-20150315
-rw-------  1 root  root        0 3月  15 03:35 cron-20150322
-rw-------  1 root  root     5740 3月  28 22:10 cron-20150328



看下logrotate配置文件
QQ截图20150330085016.png
配置文件非常简单,也通俗易懂,一会在说下每个参数的意思,可以看到include /etc/logrotate.d,看看这个目录下有个咩?
1
2
3
4
5
6
7
8
9
10
11
12
root@qa-qding-qdingnet. /var/log# ll /etc/logrotate.d/
总用量 40
-rw-r--r--. 1 root root  103 10月  3 2012 dracut
-rw-r--r--  1 root root  185 8月  15 2014 httpd
-rw-r--r--. 1 root root  173 6月  22 2012 iscsiuiolog
-rw-r--r--  1 root root  112 3月  28 22:05 market
-rw-r-----  1 root named 170 10月 15 21:28 named
-rw-r--r--  1 root root  136 8月  23 2010 ppp
-rwxr-xr-x  1 root root  452 11月  8 03:43 salt
-rw-r--r--  1 root root  210 12月 10 18:05 syslog
-rw-r--r--  1 root root  100 2月   4 2013 wpa_supplicant
-rw-r--r--  1 root root   87 10月 16 23:15 yum



关于crontab的log是写在syslog里得,所以我们继续看下syslog的配置文件吧
QQ截图20150330085026.png 我们都知道syslog管理者cron mail message secure这些日志
貌似刚才logrotate的主配置文件截图没截完整 哈哈,那说一个实力吧 一个tomcat的日志分割,一个nginx的日志分割
1
2
3
4
5
6
7
8
vim /etc/etc/logrotate.d/tomcat
/data/market_tomcat/logs/catalina.out {   #定义日志的位置,当然也可以写多个就像syslog那样子
    rotate 30                             #保留归档30天~不解释,你懂得 就是分割之后保留一个月
    daily                                 #每天分割
    copytruncate                          #表示此方法采用的是先拷贝再清空的方式
    missingok                             #表示如果找不到log文件也没OK
    notifempty                            #表示如果log文件是空的,就不进行rotate
}



保存退出,我们执行下/usr/sbin/logrotate -f /etc/logrotate.conf在看下tomcat目录下的日志文件
1
2
root@Py /data/market_tomcat/logs# ll catalina.out-20150328
-rw-r--r-- 1 root root 233079086 3月  28 22:05 catalina.out-20150328



nginx的例子:
1
2
3
4
5
6
7
8
9
10
   /data/logs/qa.qding.qdingnet_accesslog {
           daily
           missingok
           rotate 5
           notifempty
           sharedscripts
           postrotate
                   [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
          endscript
  }



无非就是加了一个shell命令,重启nginx滴。你懂得

参数说明
参数 功能  
  compress 通过gzip 压缩转储以后的日志  
  nocompress 不需要压缩时,用这个参数  
  copytruncate 用于还在打开中的日志文件,把当前日志备份并截断  
  nocopytruncate 备份日志文件但是不截断  
  create mode owner group 转储文件,使用指定的文件模式创建新的日志文件  
  nocreate 不建立新的日志文件  
  delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩  
  nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。  
  errors address 专储时的错误信息发送到指定的Email 地址  
  ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。  
  notifempty 如果是空文件的话,不转储  
  mail address 把转储的日志文件发送到指定的E-mail 地址  
  nomail 转储时不发送日志文件  
  olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统  
  noolddir 转储后的日志文件和当前日志文件放在同一个目录下  
  prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行  
  postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行  
  daily 指定转储周期为每天  
  weekly 指定转储周期为每周  
  monthly 指定转储周期为每月  
  rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份  
  tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~  
  size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).  


哦对了。我们可以看下/etc/cron.daily/logrotate脚本, 这个每天会主动帮忙进行日志的备份


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-51980-1-1.html 上篇帖子: linux中/etc/passwd文件与/etc/shadow文件解析 下篇帖子: Linux编程遇到的问题汇集(持续更新中) Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表