Linux上常用的分析日志的快捷键

目录

前言

一、日志分析

二、常用操作

参考


前言

本文主要介绍在Linux上项目出错时,如何根据日志查找错误、分析日志的过程用常用的快捷键。

其他内容主要是记录一下工作上线手册会涉及到的内容。例如:创建用户、关闭防火墙、时钟同步、NAS挂载、软件安装、开机自启动等。

也会记录一下Linux上常用到的一些命令,具体的可见参考文档。


一、日志分析

背景:项目使用logback写日志,业务处理过程中设置流水号跟踪业务处理过程。

Linux命令主要用到tail和find 和grep 命令。

1.问题能够复现,可使用tail命令实时查看文件内容。-nf从倒数多少行开始展示,新内容实时刷新。ctrl+c结束命令。

tail [参数] [文件名]

#-100展示文件末尾100行,-f实时追加最新内容。示例:
tail -100f  /log/app.log

2.发现问题,需要分析问题出现的原因。情况一,能定位到具体的错误日志文件,无法定位到文件中错误位置。vi 打开文件/内容 查找。

#vi/vim命令编辑模式下查找内容,示例在app.log文件中查error或者业务流水号关键字内容。

vi app.log

执行上面命令进入编辑模式,使用下面步骤查找错误点

  1. 按/
  2. 输入搜索模式或者字符串。如:输入error
  3. 按Enter执行搜索。
  4. 按n查找 下一个或N查找上一个。
  5. G定位到文件末尾。

3.发现问题,需要分析问题出现的原因。情况二,不能定位到具体的错误日志文件。使用grep命令用于根据给定的正则表达式搜索文本,并将匹配的行打印出来。

grep [参数] 查找内容 [文件]

#查找内容和文件名支持正则,忽略大小写在当前目录下的.log文件中查询 error内容。
grep -ri error *.log

定位到错误 文件,接下来参考2定位到具体错误内容。

常用参数说明:

  • -i:忽略大小写进行匹配。
  • -v:反向查找,只打印不匹配的行。
  • -n:显示匹配行的行号。
  • -r:递归查找子目录中的文件。
  • -l:只打印匹配的文件名。
  • -c:只打印匹配的行数。

4.补充,具体命令用法可使用命令 --help。参考

find 命令在指定目录下查找文件和目录,结合管道| 和grep 命令查找内容。适用,不知道具体日志文件目录和内容时。

find [路径] [匹配条件] [动作]
#查找当前目录下所有20240110日志文件中的error内容
find -name "*20240110.log"|xargs grep error
#查找log目录下root用户写的文件
find -user root
#在data目录下删除所有.running的文件
find /log -name "*.running" -exec rm {} \;

【路径】:不填时,默认为当前路径。

【匹配条件】常用:

  • -name name:按文件名查找,支持使用通配符 * 和 ?
  • -user username:按文件所有者查找。
  • -group groupname:按文件所属组查找。
  • -type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。
  • -size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。
  • -mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。

二、常用操作

  1. 登录

常用工具:WindTerm、MobaXterm等。

登录后切换用户:

su - test

说明:一般root用户登录,其他sudo权限用户登录后,切换其他用户时 sudo su - test

#切换到root用户
sudo -i
#当前用户退出
exit
#查看当前用户
whoami

2.创建test用户组和用户

groupadd -g 2024 test
useradd -u 2024 -g 2024 test

3.时钟同步

使用chronyc 做时间同步。

#查看时间同步源
chronyc -n sources -v
chronyc tracking

#修改配置
vi /etc/chrony.conf
#添加
server IP iburst

#时钟服务状态
service chronyd status
service chronyd restart

4. 关闭防火墙

#查看
getenforce
#临时关闭
setenforce 0
#永久关闭
vi /etc/selinux/config
SELINUX=disabled
#关闭firewalld
systemctl disable firewalld

5.配置环境变量

#配置全局环境变量
vi /etc/profile
#添加内容
export MAVEN_HOME=/usr/local/maven
#添加alias(当常用命令快捷键使用)
alias web="cd $APP_HOME/app/vue-web"
alias log="tail -f /log/app.log"

#配置用户环境变量
vi ~/.bash_profile
#同上

7.配置定时任务

#配置定时任务
crontab -e

#常用的定时任务写法
#每天1点定时备份
0 0 * * * mysqldump -uroot -p12356 test > /mysql/backup/test_all.sql;
#每天8点执行test脚本(读取环境变量,将执行内容记录日志)
0 8 * * * source /etc/profile /tmp/test.sh >> /tmp/test.log 2>&1
#reboot重启执行test脚本
@reboot /tmp/test.sh

8.开机自启动

#使用自启动
systemctl enable mysql
#启动
systemctl start mysql
#停止
systemctl stop mysql
#重启
systemctl restart mysql
#禁用开机自启动
systemctl disable mysql

9.挂载nas

10.应用备份

#编写脚本
su - test << EOF
rsync -rtopgvvP --delete-after /test/app/* /test/backup
EOF

11.打包和解压

压缩: 

#示例:压缩test下app和cfg目录下的文件(排除app下的log目录)为app.类型。
#压缩tar
tar -cvf app.tar app cfg --exclude=/test/app/log/*
#压缩tar.gz.其中-c 表示创建压缩文件,-z 表示使用 gzip 压缩,-v 表示显示压缩进度,-f 表示指定压缩文件名。
tar -zcvf app.tar.gz app cfg --exclude=/test/app/log/*
#压缩.zip
zip -rv app.zip app cfg -x=/test/app/log/*

解压:

#示例:解压上面打包的文件app.类型到指定目录/test1。
#解压tar
tar -xpvf app.tar -C=/test1
#解压tar.gz.其中-C 表示指定目录,-p 表示使用原来的目录和权限。
tar -zxpvf app.tar.gz -C=/test1
#解压.zip
unzip -o app.zip -d /test1

12.复制文件

cp -arv /test/app/* /test/backup

13.文件权限

文件权限分为三级:文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

数字分三段,对应所有者、用户组、其他用户;权限按下表进行累加。比如:777 所有级别都有读写执行权限,755:所有者有读写执行权限,其他级别有读和执行权限。

权限rwx十进制二进制
r--4100
-w-2010
执行--x1001
---0000

14.文件授权

chmod mode file...
#给app目录下所有文件都授权755
chmod -R 755 /test/app
#所有用户减x执行权限
chmod a-x `find * -name "*.*"`
#所有.sh文件添加x权限
chmod a+x `find * -name "*.sh"`

15.文件传输

scp [可选参数] file_source file_target
scp test.tar root@10.131.11.11:/tmp

16.软件安装

#yum安装jdk11为例
#查看是否安装
yum installed|grep jdk11
#查找yum源中是否有安装包
yum -qa|grep jdk11
#安装
yum -y install java-11-*

#验证
java -version

17.创建文件查看目录等

#创建目录
mkdir /test/a
#创建文件a.txt和b.txt
touch a.txt
>b.txt
#重命名a.txt为c.txt
mv a.txt c.txt
#复制目录a到b
cp -ra /test/a /test/b
#删除b目录下所有文件
rm -rf /text/b/
#查看当前目录路径
pwd
#查看当前目录下文件
ls -a

ls命令参数如下:

  • -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
  • -d 只列出目录(不递归列出目录内的文件)。
  • -l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。
  • -r 倒序显示文件和目录。
  • -t 将按照修改时间排序,最新的文件在最前面。
  • -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
  • -R 递归显示目录中的所有文件和子目录。

参考

Linux命令大全

nas挂载

chronyc时间同步

Linux命令行与shell脚本编程大全.第3版(需要的可私信留言)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值