linux自动清理日志的方法分享1.做自动部署系统时精简的一个脚本,主要功能是清理所有目录的日志
2.根据给定日志目录,删除时间 结合crontab进行清理日志,清理完成后,后在/var/log/deltelog/ 生成按照月的清理日志
3.扩展,因为脚本采用mtime(最后修改时间)进行删除,所以可以适用于删除过期备份等,不受文件名称的限制
shell小窍门
find –type f –print 时会根据换行或者空格来输出查找的文件,在不同的sh下有不同的`反应,如果不做处理结合xargs 进行删除 更改操作,会有影响
所以需要增加 –print0 用 null来 作为边界符号,才敢结婚 xargs –o 来格式化输入
使用find 的时候 遵循最小结果集原则,find解析式从左到右,所有确保你在最左边的过滤符号能够过滤最大数据
你可以根据你的需要增加到crontab中
shell脚本
复制代码 代码如下:
#!/bin/sh
###########################
# log blog.duplicatedcode.com
# in_day_num: like 1 2 is2day ago logs
# in_log_path like tomcat log home
###########################
in_log_path=${1}
in_day_num=${2}
tmp__log=/var/log/log/"`date%Y%m`.log"
Log()
{
inner_num=${1}
#find log
echo "[`date`]startlogs---"$tmp__log
find ${in_log_path} -type f -mtime ${inner_num} -print0 | xargs -0 rm -rf
echo "[`date`]endlogs---"$tmp__log
}
init()
{
mkdir -p /var/log/log/
}
main()
{
init
if [ -z ${in_log_path} ];then
echo "[`date`]error log_path not init---"$tmp__log
return
fi
inner_day_num= 7
if [[ -n ${in_day_num} ]][[ ${in_day_num} -ge 1 ]] ; then
${inner_day_num}=${in_day_num}
fi
Log ${inner_day_num}
}
main
Linux日志截取利器——sed命令(亲测可用) 在生产环境中linux过滤日志命令,往往没有条件给我们去debug排查,更多时候我们是通过日志来看具体linux过滤日志命令的报错日期 。
但是日志往往是一直在实时更新,而且记录条数庞大,很难直接定位到错误信息 。这个时候 , 就可以利用sed命令来截取指定时间段内的日志(也是网上大多数博主的做法) 。
具体命令如下:
这条命令可以查询2020.10.13号当天9点到9点十分中间的所有的日志信息 。
但是这条命令的使用有两个前提(很多网上的博主都没有提到)
第一 , 日志输出的日期格式是要满足命令中的格式 , 如果不是的话就跟着实际的格式改
第二 , 输入的日期必须要真实存在linux过滤日志命令?。。? , 比如说9点整刚好没有日志输出 , 那么这条命令就会失效
更加通配的命令可以是这样,使用号*
这样无论九点整的时候是否有日志产生 , 就都可以获取到9点整到现在的所有日志了
使用 , 将截取到的内容输出到指定的文件中,方便进一步查看
ps:在实际操作中 , 我们一般会在后面加grep命令做进一步的关键字过滤
linux查看日志的命令是?具体怎么用Linux查看日志的命令有很多,比如tail、cat、tac、head、echo等,今天给大家介绍几种常用的方法:
1、tail-实时查看变化的日志
命令格式:tail [必要参数][选择参数][文件]
-f:循环读取
-q:不显示处理信息
-v:显示详细的处理信息
-c数目:显示的字节数
-n行数:显示行数
【linux过滤日志命令 linux过滤进程】-q, --quiet, --silent:从不输出给出文件名的首部
-s, --sleep-interval=S:与-f合用,表示在每次反复的间隔休眠S秒
2、head
跟tail相反,head是看日志的前多少行
head -n 10 test.log:查询日志文件中的前10行日志;
head -n -10 test.log:查询日志文件除了最后10行的其他所有日志;
3、cat-搜索关键字附近的日志
cat是由第一行到最后一行连续显示在屏幕上
最常用的命令:cat -n filename | grep "关键字"
cat app.log | grep -C 5 '关键字':显示日志里匹配字串那行以及前后5行;
cat app.log | grep -B 5 '关键字':显示匹配字串及前5行;
cat app.log | grep -A 5 '关键字':显示匹配字串及后5行;
4、more
more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容 , 支持vi中的关键字定位操作 。
more的语法:more 文件名
linux过滤日志命令的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于linux过滤进程、linux过滤日志命令的信息别忘了在本站进行查找喔 。
推荐阅读
- 关于mongodb深入云计算的信息
- 中国人独自开发游戏叫什么,中国一个人开发的游戏
- 如何推广赚钱软件给朋友,怎么有效的去推广一个软件
- go语言实战下载 go语言教程下载
- 阶乘用c语言程序设计,阶乘c语言代码
- 西瓜视频如何推广应用赚钱,西瓜视频有推广吗
- 类似开店经营类的游戏名,类似开店经营类的小说
- php返回curl数据 php post返回数据
- 鸿蒙大陆之神级系统,神级鸿蒙系统全文免费阅读