Linux命令大全

**

JAVA日志篇

**
ctrl + c
退出:

head
//查看某个日志文件的前10行
head -n 10 catalina.out
//查看某个日志文件除了后10行外的所有日志文件
head -n -10 catalina.out
在这里插入图片描述
tail
//后10行数据,两句效果一样
tai -n 10 log.txt
tai -n -10 log.txt
//从10往后的所有数据
tai -n +10 log.txt

1 a
2 b

990

1000

tai -n 10 log.txt ===
tai -n -10 log.txt ===
tai -n +990 log.txt

cat
最佳实践:

cat关键字附近

  1. cat -n catalina.out | grep “关键字”;
  2. 获取行号N
  3. cat -n catalina.out | tail -n +N | head -n 10

//按行号查看—过滤出关键字附近的日志
//查看catalina.out日志文件的,所有带69999002452的行
cat -n catalina.out | grep “69999002452”
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020080718203764.
然后,我想看看55885行后面的数据,
第一步,获得number号码:55885。
第二步,使用|和tail和head
cat -n catliana.out | tail -n +55885 | head -n 2
语句分析:
cat -n catliana.out : 获取整个catalina.out这个文件的整个数据文件a
| :管道。将数据文件a输入到后面的表达式中。
tail -n +55885 :从前面获得的数据文件a的55885行后的数据。形成数据文件b
| :管道。将数据文件b输入到后面的表达式中。
head -n 2:将数据文件b前两行展示到终端。
在这里插入图片描述
cat单步调试
cat -n catalina.out | grep 关键字 | more
在这里插入图片描述
通过回车进行调试。下一行。

cat获取的数据输入到硬盘上
拉到硬盘上!
cat -n catalina.out | grep java >debug.txt.
在这里插入图片描述

rpm
redhat package manager 包管理。
rpm -qa 主动询问模式
在这里插入图片描述
卸载某个文件:
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242…

一般来说
rpm -qal | grep jdk

rpm -e --nodeps 文件名称
一起使用

//安装jdk的时候 jdkxxxx.rpm包的时候使用的命令
rpm -ivh javaxxxx.rpm
之后验证自己是否成功安装
rpm -qa | grep jdk

cp
复制文件
复制某个文件到某某位置
cp 文件名称 目标位置
cp java1.8 /usr/local

**vim && source etc/profile **
//修改环境变量,更新
vim /etc/profile
source /etc/profile

今天跟公司运维大叔交流。
1
top
free
netstate
ping

lsof -i
查看端口号
查看8080端口占用
在这里插入图片描述

netstate -tunlp
查看所有端口占用情况:

netstat -tunlp |grep 端口号
用于查看指定的端口号的进程情况,如查看8000端口的情况,
netstat -tunlp |grep 8000

可以看到为31523这个进程开的端口号:80,8009,8005在这里插入图片描述
最佳实践:确定自己得系统得端口号是多少
ps -ef |grep java //看自己web得进程号是多少
netstat -anp | grep 8443 //根据tomcat里面得东西,来看看自己得验证,这个命令会显示8443端口得进程号!

2
shell脚本

3
在这里插入图片描述

**

运维Shell脚本篇

**


/etc/profile
/etc/passwd


1.使得配置文件生效
. /etc/profile
source /etc/profile

2.配置环境变量,语言乱码
LANG=C; export LANG;

$(id -u) #获取()中指令的结果
$? #获取上一个指令获得的结果

eg:
if[ $(id -u) !=0 ]

4.if语法结构
if[]; then fi

eg:
if[ 1==1 ];then
echo “test”;
exit 1
fi

id -u

6.测试是否是个文件目录/文件
test -d filePath
-f fileName

eg:
if [ test -d filePath ]
if [ ! -f fileName ]

7.创建文件
touch fileName

8.pgrep
命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id
eg:
pgrep -lo httpd
4557 httpd

9.awk 文件处理语言。强大的文本分析工具
awk ’ { print $1 , $4 } ’ fileName
2 a
3 like
默认 ’ '进行分割

默认 ’ , '进行分割
awk -F, ‘{print $1,$2}’ log.txt

10.cut 从文本文件或者文本流提取列
eg:
cut -f1 -d “:” /etc/passwd
用":"进行切割,获取第一列
cut -f列 -d “分隔符” 文件名称

grep -w :用于字符串精确匹配
grep -w “$1” -c :-c用于进行统计

ipcs -m
-m 输出有关共享内存(shared memory)的信息

shared Memery:
# m 0 0x50000d43 --rw-r–r-- root root
# m 501 0x1e90c97c --rw-r----- oracle dba

#[root@ipv6 bin]# /usr/bin/ipcs
#------ Shared Memory Segments --------
#key shmid owner perms bytes nattch status
#------ Semaphore Arrays --------
#key semid owner perms nsems
#0x00000000 0 root 600 1
#0x00000000 32769 root 600 1
#------ Message Queues --------
#key msqid owner perms used-bytes messages

13.grep 筛选
grep -v ‘grep’ # grep -v ‘xx’ 不加载xx的
grep java # 筛选带java的。

su -userName -c commandName
不切换用户执行命令

eg:
su - tomcatUser -c “lsrctl start”

15.curl 最佳实践:获取code
curl --head http://192.168.56.11:32769/
# HTTP/1.1 200 OK
# Server: nginx/1.11.3
# Date: Fri, 02 Sep 2016 17:44:14 GMT
# Content-Type: text/html
# Content-Length: 612
# Last-Modified: Tue, 26 Jul 2016 14:54:48 GMT
# Connection: keep-alive
# ETag: “579779b8-264”

# Accept-Ranges: bytes

最佳实践获取返回代码,用来进行对tomcat进行监控!
/usr/bin/curl -I -m 10 -o /dev/null -s -w %{http_code} $WebTomcatUrl

15.安装包
# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
# tar zxvf sendEmail-v1.56.tar.gz
# cd sendEmail-v1.56
# mv sendEmail /usr/local/bin/

tail more grep cat jstat jstack jmap
top du df awk rm tar wget curl。。。。。

16.删除文件夹

rm -rf /www/web/moyugan_vip/public_html/jingyan123

17.rpm 安装.rpm文件!
rpm -i cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm

18.重启网卡
service network restart

19.查找文件

find / -name zookeeper.3.14
[root@Wg local]# find / -name zookeeper-3.4.14
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/local/zookeeper-3.4.14
/usr/local/zookeeper-3.4.14/zkData?/usr/local/zookeeper-3.4.14
/usr/local/zookeeper-3.4.14/zkData1?/usr/local/zookeeper-3.4.14
/usr/local/zookeeper-3.4.14/zkData2?/usr/local/zookeeper-3.4.14

20.查看防火墙状态命令:
systemctl status firewalld
会出现一堆东西,然后查看“Active : active(running)“
这就说明,正在运行。

**

运维监控篇

**
数据库和代码不再同一个机器上
代码:211.68.122.105
数据库:219.224.96.150
这个时候,因为要连接数据库,那么,我首先要确定。1521端口是否是通的。
login as: root
root@211.68.122.105’s password:
Last login: Thu Nov 19 15:11:03 2020 from 211.68.123.18

step1:看看两个机器能不能ping通!
[root@localhost home]# ping 219.224.96.150
PING 219.224.96.150 (219.224.96.150) 56(84) bytes of data.
^C
— 219.224.96.150 ping statistics —
380 packets transmitted, 0 received, 100% packet loss, time 378999ms

说明,这个机器跟我ping不通。

step2:看看那个端口是否能ping通!
telnet 219.224.96.150 1521
在这里插入图片描述
Connected to 219.224.96.150.
说明可以连上!

**

面试官都这么问了,我能说不能吗?

生产服务器变慢了,一般都是从这几点去分析:服务器整体情况, CPU 使用情况,内存,磁盘,磁盘 IO ,网络 IO

分为:

整体
CPU
内存
磁盘 IO
网络 IO

整体
服务器整体使用情况:

top
在这里插入图片描述
第 1 行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)

第 2 行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。一般情况下,只要没有僵死的进程,就没啥大问题。

第 3 行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。

第 4 行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量

第 5 行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量

第 6 行里面主要看 PID 和 COMMAND 这两个参数,其中 PID 就是进程 ID , COMMAND 就是执行的命令,能够看到比较靠前的两个进程都是 java 进程

在当前这个界面,按下数字键盘 1 能够看到各个 CPU 的详细利用率
在这里插入图片描述

中央处理器 vmstat
使用情况:包括进程状态采集,cpu使用状态

vmstat -n 3 2
在这里插入图片描述
3:采样的时间间隔(s)
2:采样次数

procs:
r:运行和等待CPU时间片的进程数。一般来说,运行队列不要超过总核数的2备。
就绪队列+运行态

b:等待资源的进程数
阻塞,挂起队列
eg:等待磁盘IO和网络IO的进程数。

cpu:
us:用户进程消耗CPU时间百分比,us值比较高说明用户进程消耗CPU时间比较长。
sy:内核进程消耗CPU时间百分比。
us+sy:超于80%说明CPU不足。

内存 FREE
内存分析 free -m 精确

如果应用程序可用内存/系统物理内存大于 70% 的话,说明内存是充足的,没啥问题,但是如果小于 20% 的话,就要考虑增加内存了
在这里插入图片描述

磁盘 DF
如果排查磁盘问题的话,首先要看的就是磁盘空间够不够,还记得阿粉在上家公司的时候,用的还是 svn 出现了一个很神奇的问题,就是哪里都不报错,就是提交不上代码,排查到最后是磁盘空间不够…

在这里插入图片描述

磁盘 iostat

说到磁盘 IO 相信你一定能够想到,在对数据库进行操作时,第一要考虑到的就是磁盘 IO 操作,因为相对来说,如果在某个时间段给磁盘进行大量的写入操作会造成程序等待时间长,导致客户端那边好久都没啥反应,用户体验就降低了吗

iostat -xdk 3 2
在这里插入图片描述
rkB/s :每秒读取数据量 kB ;
wkB/s :每秒写入数据量 kB ;
svctm :I/O 请求的平均服务时间,单位毫秒;
util :一秒中有百分之几的时间用于 I/O 操作,如果接近 100% 说明磁盘带宽跑满了,这个时候就要优化程序或者增加磁盘了

网络IO

网络 IO 的话,可以通过 sar -n DEV 3 2 这条命令来看,和上面的差不多,意思就是每隔 3 秒取样一次,一共取样 2 次。

IFACE :LAN 接口
rxpck/s :每秒钟接收的数据包
txpck/s :每秒钟发送的数据包
rxKB/s :每秒接收的数据量,单位 KByte
txKB/s :每秒发出的数据量,单位 KByte
rxcmp/s :每秒钟接收的压缩数据包
txcmp/s :每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包

**

日常操作

**

sudo -u admin find /home/admin /tmp /usr -name *.log(多个目录去找)
find . -iname *.txt(大小写都匹配)
find . -type d(当前目录下的所有子目录)
find /usr -type l(当前目录下所有的符号链接)
find /usr -type l -name “z*” -ls(符号链接的详细信息 eg:inode,目录)
find /home/admin -size +250000k(超过250000k的文件,当然+改成-就是小于了)
find /home/admin f -perm 777 -exec ls -l {} ; (按照权限查询文件)
find /home/admin -atime -1 1天内访问过的文件
find /home/admin -ctime -1 1天内状态改变过的文件
find /home/admin -mtime -1 1天内修改过的文件
find /home/admin -amin -1 1分钟内访问过的文件
find /home/admin -cmin -1 1分钟内状态改变过的文件
find /home/admin -mmin -1 1分钟内修改过的文件
sudo -u admin find /home/admin /tmp /usr -name *.log(多个目录去找)
find . -iname *.txt(大小写都匹配)
find . -type d(当前目录下的所有子目录)
find /usr -type l(当前目录下所有的符号链接)
find /usr -type l -name “z*” -ls(符号链接的详细信息 eg:inode,目录)
find /home/admin -size +250000k(超过250000k的文件,当然+改成-就是小于了)
find /home/admin f -perm 777 -exec ls -l {} ; (按照权限查询文件)
find /home/admin -atime -1 1天内访问过的文件
find /home/admin -ctime -1 1天内状态改变过的文件
find /home/admin -mtime -1 1天内修改过的文件
find /home/admin -amin -1 1分钟内访问过的文件
find /home/admin -cmin -1 1分钟内状态改变过的文件
find /home/admin -mmin -1 1分钟内修改过的文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值