Linux运维指南

说明:本文简单介绍下运维场景中常用的linux命令

场景一:日志查看类

less 分屏显示文件内容


less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
1)基本语法
less 要查看的文件
2)操作说明

操作

功能说明

空格键 或者 [pagedown]

向下翻动一页

b 或者 [pageup]

向上翻动一页

上下键

上下翻动一行

/字符串

向下搜寻 字符串 的功能;n:向下查找;N:向上查找;

?字符串

向上搜寻 字符串 的功能;n:向上查找;N:向下查找;

gg

回到文件第一行

shift + g 或者 G

回到文件的最后一行

q

离开 less 这个程序

head 显示文件头部内容


head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
1)基本语法
head 文件 (功能描述:查看文件头10行内容)
head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
2)选项说明

选项

功能

-n <行数>

指定显示头部内容的行数

tail 输出文件尾部内容


tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
1)基本语法
(1)tail 文件 (功能描述:查看文件后10行内容)
(2)tail -n 5 文件 (功能描述:查看文件后5行内容,5可以是任意行数)
(3)tail -f 文件 (功能描述:实时追踪该文档的所有更新)
2)选项说明

选项

功能

-n<行数>

输出文件尾部n行内容

-f

显示文件最新追加的内容,监视文件变化

grep 过滤查找及“|”管道符


管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
1)基本语法
grep 选项查找内容源文件
命令 | grep 关键字
2)选项说明

选项

功能

-n

显示匹配行及行号

-i

忽略大小写进行匹配

-v

反向匹配,只打印不匹配的行

常用for 循环


for i in `命令` ;do xxxx;done
案例实操
(1)查看hologres集群物理机有没有core文件

for i in `/apsara/kube_tools/kubectl get nodes | grep -v NAME |awk '{print $1}'`; do ssh $i ls -lrt /cloud/data/corefile;done

(2) 查看 odps tunnel机器 session_id 为 xxx的日志

for i in $(tj_show -r odps-service-frontend.TunnelFrontendServer# -ip);
do
    ssh $i 'grep ERROR /apsara/tunnel_server/logs/tunnel.log'
done    

场景二:磁盘水位类

df 查看磁盘空间使用情况

1)基本语法

df 选项(功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)

2)选项说明

选项

功能

-h

以human易读的 GBytes, MBytes, KBytes 等格式显示;

3)案例实操

(1)查看磁盘使用情况

du 查看目录/文件水位

1)基本语法

du 选项 路径(功能描述:列出路径中目录/文件磁盘使用量)

2)选项说明

选项

功能

-h

以human易读的 GBytes, MBytes, KBytes 等格式显示;

-s

只显示总计值

3)案例实操

(1)查看当前目录下各文件/目录的总计值

find 查找文件或者目录

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

1)基本语法

find [搜索范围] [选项]

2)选项说明

选项

功能

-name<查询方式>

按照指定的文件名查找模式查找文件

-size<文件大小>

按照指定的文件大小查找文件。

-type<类型>

按照指定的类型查找 目录或者文件。

3)案例实操

(1) 查找/apsara下 名为stderr.out 的文件

sudo find /apsara/* -type f -name 'stderr.out'

(2) 查找大小大于100M的文件

sudo find /* -type f -size +100M

场景三:系统管理类

ps 查看当前系统进程状态

ps:process status 进程状态

1)基本语法

ps aux| grep xxx (功能描述:查看系统中所有进程)

ps -ef| grep xxx (功能描述:可以查看子父进程之间的关系)

2)选项说明

选项

功能

-a

选择所有进程

-u

显示所有用户的所有进程

-x

显示没有终端的进程

3)功能说明

(1)ps aux显示信息说明

USER:该进程是由哪个用户产生的

PID:进程的ID号

%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;

%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;

VSZ:该进程占用虚拟内存的大小,单位KB;

RSS:该进程占用实际物理内存的大小,单位KB;

TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。

STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台

START:该进程的启动时间

TIME:该进程占用CPU的运算时间,注意不是系统时间

COMMAND:产生此进程的命令名

(2)ps -ef显示信息说明

UID:用户ID

PID:进程ID

PPID:父进程ID

C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高

STIME:进程启动的时间

TTY:完整的终端名称

TIME:CPU时间

CMD:启动进程所用的命令和参数

4)经验技巧

如果想查看进程的CPU占用率和内存占用率,可以使用aux;

如果想查看进程的父进程ID可以使用ef;

kill 终止进程

1)基本语法

kill [选项] 进程号 (功能描述:通过进程号杀死进程)

2)选项说明

选项

功能

-9

表示强迫进程立即停止

top 查看系统健康状态

1)基本命令

top [选项]

2)选项说明

选项

功能

-d 秒数

指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:

-i

使top不显示任何闲置或者僵死进程。

-p

通过指定监控进程ID来仅仅监控某个进程的状态。

3)操作说明

操作

功能

P

以CPU使用率排序,默认就是此项

M

以内存的使用率排序

N

以PID排序

q

退出top

4)查询结果字段解释

第一行信息为任务队列信息

内容

说明

12:26:46

系统当前时间

up 1 day, 13:32

系统的运行时间,本机已经运行1天

13小时32分钟

2 users

当前登录了两个用户

load average: 0.00, 0.00, 0.00

系统在之前1分钟,5分钟,15分钟的平均负载。

第二行为进程信息

Tasks: 95 total

系统中的进程总数

1 running

正在运行的进程数

94 sleeping

睡眠的进程

0 stopped

正在停止的进程

0 zombie

僵尸进程。如果不是0,需要手工检查僵尸进程

第三行为CPU信息

Cpu(s): 0.1%us

用户模式占用的CPU百分比

0.1%sy

系统模式占用的CPU百分比

0.0%ni

改变过优先级的用户进程占用的CPU百分比

99.7%id

空闲CPU的CPU百分比

0.1%wa

等待输入/输出的进程的占用CPU百分比

0.0%hi

硬中断请求服务占用的CPU百分比

0.1%si

软中断请求服务占用的CPU百分比

0.0%st

st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。

第四行为物理内存信息

Mem: 625344k total

物理内存的总量,单位KB

571504k used

已经使用的物理内存数量

53840k free

空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了

65800k buffers

作为缓冲的内存数量

第五行为交换分区(swap)信息

Swap: 524280k total

交换分区(虚拟内存)的总大小

0k used

已经使用的交互分区的大小

524280k free

空闲交换分区的大小

409280k cached

作为缓存的交互分区的大小

  列名    含义
	PID     进程id
	PPID    父进程id
  RUSER   Real user name
  UID     进程所有者的用户id
  USER    进程所有者的用户名
  GROUP   进程所有者的组名
  TTY     启动进程的终端名。不是从终端启动的进程则显示为 ?
  PR      优先级
  NI      nice值。负值表示高优先级,正值表示低优先级
  P       最后使用的CPU,仅在多CPU环境下有意义
  %CPU    上次更新到现在的CPU时间占用百分比
  TIME    进程使用的CPU时间总计,单位秒
  TIME+   进程使用的CPU时间总计,单位1/100秒
  %MEM    进程使用的物理内存百分比
  VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
  RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  CODE    可执行代码占用的物理内存大小,单位kb
  DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
  SHR     共享内存大小,单位kb
  nFLT    页面错误次数
  nDRT    最后一次写入到现在,被修改过的页面数。
  S       进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
  COMMAND 命令名/命令行
  WCHAN   若该进程在睡眠,则显示睡眠中的系统函数名
  Flags   任务标志,参考 sched.h

5)案例实操

(1)直接使用

top

(2)一秒钟查询一次

top -d 1

(3)查看进程的线程情况

top -p <进程号> -》shift + h
(4) 高亮显示某一列,并按该列排序 “<”“>”可以左右移动需要排序的列。

top -》 x -》 shift +><

tsar 系统性能监控工具

1)基本命令

tsar [选项]

2)选项说明

选项

功能

--interval/-i

指明tsar的间隔时间,默认单位分钟,带上--live参数则单位是秒

--live/-l

查看实时数据

-type<类型>

按照指定的类型查找 目录或者文件。

--ndays/-n

指定过去的数据天数,默认1天

--date/-d

指定日期,YYYYMMDD

--spec/-s

指定字段,例如,tsar –cpu -s sys,util

--list/-L

列出启用的模块

Modules Enabled:

--cpu 列出cpu相关的监控计数

--mem 物理内存的使用情况

--swap 虚拟内存的使用情况

--tcp TCP 协议 IPV4的使用情况

--udp UDP 协议 IPV4的使用情况

--traffic 网络传出的使用情况

--io Linux IO的情况

--pcsw 进程和上下文切换

--partition 磁盘使用情况

--tcpx TCP 连接相关的数据参数

--load 系统负载情况

cpu字段含义

  • user: 表示CPU执行用户进程的时间,通常期望用户空间CPU越高越好.
  • sys: 表示CPU在内核运行时间,系统CPU占用率高,表明系统某部分存在瓶颈.通常值越低越好.
  • wait: CPU在等待I/O操作完成所花费的时间.系统部应该花费大量时间来等待I/O操作,否则就说明I/O存在瓶颈.
  • hirq: 系统处理硬中断所花费的时间百分比
  • sirq: 系统处理软中断所花费的时间百分比
  • util: CPU总使用的时间百分比

mem字段含义

  • free: 空闲的物理内存的大小
  • used: 已经使用的内存大小
  • buff: buff使用的内存大小,buffer is something that has yet to be "written" to disk.
  • cach: 操作系统会把经常访问的东西放在cache中加快执行速度,A cache is something that has been "read" from the disk and stored for later use
  • total: 系统总的内存大小
  • util: 内存使用率

load字段含义

  • load1: 一分钟的系统平均负载
  • load5: 五分钟的系统平均负载
  • load15:十五分钟的系统平均负载
  • runq: 在采样时刻,运行队列的任务的数目,与/proc/stat的procs_running表示相同意思
  • plit: 在采样时刻,系统中活跃的任务的个数(不包括运行已经结束的任务)

tcp字段含义

  • active:主动打开的tcp连接数目
  • pasive:被动打开的tcp连接数目
  • iseg: 收到的tcp报文数目
  • outseg:发出的tcp报文数目
  • EstRes:Number of resets that have occurred at ESTABLISHED
  • AtmpFa:Number of failed connection attempts
  • CurrEs:当前状态为ESTABLISHED的tcp连接数
  • retran:系统的重传率

参考链接:https://www.cnblogs.com/zafu/p/7423730.html

3)案例实操

(1)查看最近一天的系统性能,打印间隔是一分钟

tsar -i 1

(2)查看两天前到现在的 cpu使用情况,打印间隔是一分钟

tsar -n 2 --cpu -i 1

(3)查看三天前机器cpu/mem/负载情况

tsar -d 3 --cpu --mem --load

场景四:文件修改类

vi/vim 编辑器

编辑器的三种模式
一般模式

以vi/vim打开一个文件就直接进入一般模式了(这是默认的模式

一般模式常用语法

语法

功能描述

yy

复制光标当前一行

y数字y

复制一段(从第几行到第几行)

p

箭头移动到目的行粘贴

u

撤销上一步

dd

删除光标当前行

d数字d

删除光标(含)后多少行

x

删除一个字母,相当于del,向后删

X

删除一个字母,相当于Backspace,向前删

yw

复制一个词

dw

删除一个词

^

移动到行头

$

移动到行尾

gg或者1+G

移动到页头

G

移动到页尾

数字+G(先输入数字,在按G)

移动到目标行

编辑模式

进入编辑模式常用语法

按键

功能

i

当前光标前

a

当前光标后

o

当前光标行的下一行

I

光标所在行最前

A

光标所在行最后

O

当前光标行的上一行

命令模式

在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。

在这个模式当中,可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!

基本语法

命令

功能

:w

保存

:q

退出

:!

强制执行

: %s/旧字符/新字符

批量替换

/ 要查找的词

n 查找下一个,N 往上查找

? 要查找的词

n是查找上一个,N是往下查找

:set nu

显示行号

:set nonu

关闭行号

ZZ(shift+zz)

没有修改文件直接退出,如果修改了文件保存后退

:nohl

去除高亮显示

:set paste

按照原格式复制内容

三种模式之间的切换

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值