linux切割日志的命令 linux日志截取

linux 按天压缩并切割日志1、linux 自带的 logrotate 命令
2、定义切割文件相关信息
/var/log/nginx/*.log {
daily #按天打包
rotate 180 #保存周期为180以内的,超过180天的则删除
missingok
notifempty
【linux切割日志的命令 linux日志截取】dateext
compress
nodelaycompress
sharedscripts
postrotate
/etc/init.d/nginx reload
endscript
}
3、crontab设置一个定时任务
59 23 * * * /usr/sbin/logrotate -f /var/logrotate/nginx/tmp/logrotate.log
Linux日志截取利器——sed命令(亲测可用) 在生产环境中 , 往往没有条件给我们去debug排查,更多时候我们是通过日志来看具体的报错日期 。
但是日志往往是一直在实时更新,而且记录条数庞大 , 很难直接定位到错误信息 。这个时候,就可以利用sed命令来截取指定时间段内的日志(也是网上大多数博主的做法) 。
具体命令如下:
这条命令可以查询2020.10.13号当天9点到9点十分中间的所有的日志信息 。
但是这条命令的使用有两个前提(很多网上的博主都没有提到)
第一,日志输出的日期格式是要满足命令中的格式 ,如果不是的话就跟着实际的格式改
第二 , 输入的日期必须要真实存在?。。?,比如说9点整刚好没有日志输出,那么这条命令就会失效
更加通配的命令可以是这样,使用号*
这样无论九点整的时候是否有日志产生,就都可以获取到9点整到现在的所有日志了
使用,将截取到的内容输出到指定的文件中,方便进一步查看
ps:在实际操作中,我们一般会在后面加grep命令做进一步的关键字过滤
Linux系统日志切割-Logrotate 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到 。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间 , 这成了个问题 。除此之外 , 处理一个单个的庞大日志文件也常常是件十分棘手的事 。
logrotate是个十分有用的工具 , 它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件 。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志 。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预 。
在Debian或Ubuntu上:
在Fedora,CentOS或RHEL上:
logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改 。日志文件的轮循设置在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下 。
参数详解:
上面的模板是通用的,而配置参数则根据你的需求进行调整,不是所有的参数都是必要的 。
logrotate可以在任何时候从命令行手动调用 。要调用为/etc/lograte.d/下配置的所有日志调用logrotate:
要为某个特定的配置调用logrotate,执行一次切割任务测试
即使轮循条件没有满足 , 我们也可以通过使用‘-f’选项来强制logrotate轮循日志文件 , ‘-v’参数提供了详细的输出 。
防止访问日志文件过大
logrotate工具对于防止因庞大的日志文件而耗尽存储空间是十分有用的 。配置完毕后 , 进程是全自动的,可以长时间在不需要人为干预下运行 。本教程重点关注几个使用logrotate的几个基本样例,你也可以定制它以满足你的需求 。
Linux日志管理神器之Logrotate日志分割 , 以及crontab定时轮询 有些服务,会自动产生大量的日志文件,如果不限制,会占用磁盘空间 。

推荐阅读