关于logrotate的额外补充

http://chenx1242.blog.51cto.com/10430133/1942514 里面已经简单介绍了logrotate命令,这里还有一些额外补充的东西:

1)查看logrotate对log文件的具体执行情况的语句是#cat /var/lib/logrotate.status,效果如图:

2)使用-v或-d参数时,显示“log does not need rotating",这是因为logrotate在对status未记录的文件进行转储时,会在status添加一条该文件的记录,并将操作时间设为当天。之后程序再次对此文件进行转储时发现这个文件今天已经操作过,就不再进行相关操作。要是想解决这个问题可以"使用-s指定logrotate状态文件";

3)分割日志时报错:“error: skipping "/var/log/nginx/test.access.log" because parent directory has insecure permissions (It‘s world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.”这是当前用户不是root,需要添加“su root list“这个语句到对应的logrotate配置文件里,比如:

/var/log/nginx/*.log {
        su root list
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        #ifempty
        create 0640 www-data adm
        sharedscripts
        postrotate
                [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
        endscript
}

4)如果觉得使用logrotate很麻烦,而当某个文件过大的时候,要实现把该文件压缩并且拆成若干个指定大小的文件,怎么办?

tar -zcvf 新文件名.tar.gz 原文件名 | split -b 每个分格包大小 -d -a 1 - 新文件名.tar.gz

比如:#tar -zcvf ABC.tar.gz ABC | split -b 4000M -d -a 1 - ABC.tar.gz.   这个命令就是把ABC这个文件压缩成ABC.tar.gz,但是如果ABC大于4000M就会切块,切成ABC.tar.gz.0,ABC.tar.gz.1,ABC.tar.gz.2......这个样子。

//使用split命令,-b 4000M 表示设置每个分割包的大小,单位还是可以k

// -d "参数指定生成的分割包后缀为数字的形式

//-a x来设定序列的长度(默认值是2),这里设定序列的长度为1

如果要把这一堆已经切块的文件重新接压缩的命令:#cat ABC.tar.gz.* | tar -zxv ;

5)如果用 kill -HUP来重启一个包含守护进程的进程,比如httpd,一条语句搞定:

ps -ef | grep httpd | grep -v grep | awk ‘{ print $2; }‘ | xargs -L 1 sudo kill -HUP

这里面首先用 awk获取到httpd的pid进程号,然后把这个进程号传给了xargs,通过-L 1来一次提取一行pid值,然后分批进行kill -HUP;

6)想更多的了解守护进程,参看http://www.cnblogs.com/mickole/p/3188321.html ;

时间: 2024-08-11 12:13:52

关于logrotate的额外补充的相关文章

3.关于作用域知识的额外补充global和nonlocal关键字

本遍文章对global关键字和nonlocal关键字进行补充,这两个关键字在以后做python开发的时候,能不用尽量别用!最好别用!总会出现让你意想不到的后果... 1.先说第一种global,不管在任何作用域下,只要是使用global声明的变量,都会变为全局变量. 直接上例子. 首先是不使用global声明变量. x = 1 def f1(): x = "suhaozhi" print x def f2(): x = "hamasakiayumi" print x

反射_程序集_额外补充

2GUG59gSA蓖http://huiyi.docin.com/sina_6372034327 盼幼wQ3旁51繁下加5http://tushu.docin.com/sina_6341927026 3Fg棵51胸M障碌谄http://tushu.docin.com/iuqkf60543 6诱BN1庸nZHXhttp://shufang.docin.com/sina_5848277294 534R员谅儆51税R9礁http://huiyi.docin.com/dtfv76012 K八迪幽捶1N鸭

redhat kvm 5.4 64 创建虚拟主机(二) 不断更新补充

官方参考 http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/index.html KVM是红帽5.4发行版中推出的最新虚拟化技术,严格上说它是完全虚拟化的产品,VMware和vpc,virtualbox等也都是完全虚拟化的产品,而xen则是半虚拟化的产品,半虚拟化从性能上说要比完全虚拟化快很多,但xen有个缺点,它是重量级的虚拟机,修改了大量的内核源代码,它的guest机

OpenStack组件系列?Keystone搭建

一:版本信息 官网:http://docs.openstack.org/newton/install-guide-rdo/keystone.html 二:部署keystone 官网文档:http://docs.openstack.org/newton/install-guide-rdo/ 查看系统信息: [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) [[email prote

移动前端滑动插件——JRoll面世

又过了一年,终于,第三篇博文要出炉了. 去年9月底,结束创业生涯后,我进入了一家外包公司从事移动前端工作,洽洽这年html5火到要爆,而具备html5技能的工程师却千里难觅,虽然我一直从事PC端的工作,但凭借扎实的js基础,也谋了个中级工程师的职位.多学点东西准没错的. 从事正规的前端工作后,我接触到了underscore.ratchet.backbone.requirejs.seajs.cordova.angular等等一大堆前端框架工具,不禁感慨,原来我以前的圈子是那么的渺小.iscroll

android问题及其解决-优化listView卡顿和怎样禁用ListView的fling

问题解决-优化listView卡顿和怎样禁用ListView的fling 前戏非常长,转载请保留出处:http://blog.csdn.net/u012123160/article/details/47720257 问题产生 这算是刚到实习公司接触到的第一个任务.公司某一产品中某个界面的listView高速滑动会有卡顿的现象发生,我的任务就是解决它. 产生原因分析 我一開始的想法比較简单.可能是listview的优化没有做到位,比如convertView的复用.viewHolder的使用等等基础

C++ 中 new 操作符内幕:new operator、operator new、placement new

原文链接 一.new 操作符(new operator) 人们有时好像喜欢有益使C++语言的术语难以理解.比方说new操作符(new operator)和operator new的差别. 当你写这种代码: string *ps = new string("Memory Management"); 你使用的new是new操作符. 这个操作符就象sizeof一样是语言内置的.你不能改变它的含义,它的功能总是一样的.它要完毕的功能分成两部分.第一部分是分配足够的内存以便容纳所需类型的对象.

杂谈--DML触发器学习

触发器按类型分为三类: 1. DML 触发器,在数据变更时触发: 2. DDL 触发器,在修改数据库级别或实例级别对象时触发: 3. Login 触发器,在用户登录时触发: 最常见的是DML触发器,DML触发器又可以分为两类: INSTEAD OF触发器和AFTER触发器(部分书上有提到FOR触发器,其实就是AFTER 触发器,只是写法不同而已). 从功能来看,INSTEAD OF触发器用来替换实际的数据修改操作,而AFTER触发器用来在实际操作完成后进行后续操作.例如对于DELETE操作,如果

Linux入门之CentOS7内核编译三部曲(2)

Linux入门之CentOS7内核编译三部曲(2) 在linux系统中,编译完了内核,得到了所需的功能,并不能表示就已经能完美完成我们的所需.因为内核只是做一个核心的硬件及核心代码的支持,而注意的模块支持任然是对应版本的内核模块文件.这些文件决定着平时能否使用哪些功能.这次不会介绍如果添加给上次编译的新内核模块功能,主要介绍模块的功能和作用以及其加载和卸载. 查看当前系统以及加载的内核模块命令:lsmod  modinfo lsmod 命令 lsmod - program to show the