日志常用命令

一、日志分类

      1)操作系统常用日志及目录

      2)应用服务器日志

 

二、日志查看

      1)静态日志:文件内容少cat, 文件内容多:more /less        

      2)动态日志:tail

          最常用:tail  -f   文件名(默认显示文件最后10行),若此时应用系统正在操作中,日志动态的往下显示

          显示最后几行:  tail  -100f   文件名(显示文件最后100行)

三、日志搜索定位

     1)按关键字搜索:

          关键字搜索并显示行号:  cat -n  文件名 | grep  '关键字'    (搜索出关键字内容且显示关键字所在行, n参数为显示行号)

        方式a: 根据关键字所在行查看内容: less  -N  -m  文件名  (N显示行号,m显示文件内容百分比, 注意:停止less命令用q )  

       方式b: 根据关键字所在行号,从第n行开始查起: more  +数字  文件名(数字就是从第几行开始查起),定位效率高

     2)按时间段搜索:

          截取单个时间点日志

          grep  '时间戳'   日志文件名

例如:   截取2022年4月20日  15:47 的日志:  grep   '2022-04-20  15:47'   kart.log;

          截取时间段日志

          grep  '时间戳正则'   日志文件名

例如:截取2022年4月20日   15:47-15:49的日志: grep  '2022-04-20 15:4[7-9]'   kar.log

四、日志提取保存

方式a. 将截取内容追加到新文件中,且清空新文件原有内容用>  :     grep    '2022-04-20 15:47'  kart.log   >  new.log

方式b.将截取内容追加到新文件末尾,不清空新文件原有内容用>>: grep    '2022-04-20 15:47'  kart.log   >>  new.log

五、日志定期操作

       日志定期操作=日志操作shell脚本+定时任务设置

1)日志定期备份: 定期复制单个指定文件

#!/bin/bash
backpath='/tmp' #日志备份到该目录下,定义变量用单引号
echo '日志备份到该目录下:'${backpath} #控制台打印备份目录
 
mylog='/apache-tomcat-7.0.96/apache-tomcat-7.0.96/logs/catalina.out' #日志源目录
echo "日志源目录:${mylog}" #控制台打印日志源目录
 
#打印时间戳,时间戳加号前有空格,意思是以这样的格式输出
echo '获取当前时间的年月日时间戳:'$(date +%Y%m%d)
echo '获取当前时间的年月日时分秒时间戳:'$(date +%Y%m%d%H%M%S)
 
#将源目录日志复制到日志备份目录下,并以年月日时分秒的格式
cp ${mylog} ${backpath}/$(date +%Y%m%d%H%M%S)_catalina.out
 
#打印备份后的日志文件名称
echo '备份的日志信息:'${backpath}/$(date +%Y%m%d)_catalina.out

2)日志定期删除

#!/bin/bash
#删除指定目录下的以manager.开头,以.log结尾的30天前的日志文件
find /apache-tomcat-7.0.96/apache-tomcat-7.0.96/logs -mtime +30 -name "manager.*.log" -exec rm -rf {} \;
#-rf与{}之间有空格,{}与\之间有空格,\与;之间没有空格,即:-rf+空格+{}+空格+\+;

3)linux定时任务设置

#定时任务设置命令crontab ,参数l代表系统已设置的定时任务有哪些,e代表新建一个定时任务,编辑方式跟vi一样,r代表删除系统所有的定时任务,若要删除某个定时任务,需要编辑删除该任务信息并重启定时任务服务
#暂停所有定时任务:service crond stop
#定时任务设置格式:五颗星号+执行的定时shell脚本路径 ,如 * * * * * /root/test.sh , 每个星号从左到右代表 分、时、日、月、周。
#设置定时间隔,将其中星号替换成反斜杠+数字即可,例如每10分钟执行一次:/10 * * * * ;每天执行一次:* * /1 * * ; 默认五个星号代表每分钟执行一次;
#设置在指定的时间执行,如:在每天8点39分执行一次: 39 8 * * * date /root/test.sh
#将一台linux的日志文件备份到另外一台linux上,使用scp远程复制命令+ssh密钥(要想定期执行,可以两台机设置免密登录)

 

posted @ 2022-12-02 11:01  羊孩  阅读(512)  评论(0编辑  收藏  举报
返回顶端