0%

磁盘性能指标

常见的指标有

  • 磁盘IO等待:CPU在等待IO操作时所花费的时间,该值如果持续很高,可能存在IO瓶颈
  • 队列平均长度:IO请求的数量,一般为2~3,过高可能IO存在瓶颈
  • 平均等待时间:IO请求服务所花费的平均时间,等待时间包括IO操作的时间和在IO队列中等待的时间,单位毫秒
  • 每秒钟传输的数量: 表示每秒钟执行了多少次IO操作
  • 每秒钟读写块的数量
  • 每秒钟读写字节的数量

sort命令

shell中还可以使用sort进行排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 以行作为单位
sort [option] [files]

-b:忽略每行前面的空格
-c:检查文件是否已经按照顺序排序
-d:排序时,处理英文字母、数字和空格字符,忽略其他字符
-g: 一般数值,以浮点数字类型比较字段
-f:排序时,将小写字母视为大写字母,也就是忽略大小写
-i:排序时,处理040~176之间的ASCII字符,忽略其他字符
-m:将几个排序好的文件进行合并
-M:将前面3个字母按月份缩写进行排序
-n:按照数值大小进行排序
-o outfile: 将排序后的结果存入outfile文件
-r: 以相反的顺序进行排序
-k:指定需要排序的列数
-t:分隔符,指定排序时用来分隔列的
-u 去重
# 将第二列按照数字大小排列
sort -nk 2 -t: test.txt

# 先以第四列排列,再以第三列排列
sort -t: -k4n -k3n /etc/passwd

awk命令

awk是shell进阶的重要命令,可以用来编排字段

awk把输入流看做一串记录的集合,每条记录都可以进一步细分为字段,一个awk程序是一对以模式和大括号框起来的操作组合而成的,awk每次从文件中读取一条记录

1
2
3
4
5
awk [选项] '条件{动作} 条件{动作}' 文件

-v var=value 设置变量值
-F fs 指定行中划分数据字段的分隔符,默认是空格
-f file 从指定文件中读取程序
1
2
pattern {action} 如模式匹配,则执行操作
pattern {action}
阅读全文 »

查看可支持的shell

linux中支持多种shell类型,所以在shell文件的第一行需要指定所使用的shell

1
#!/bin/bash

虽然#在shell中表示注释,但是第一行是例外的,#后跟!来告诉shell使用哪个shell来执行脚本

指定该脚本使用的是/bin/bash,这样的机制使得我们可以轻松地引用任何的解释器

查看该linux系统支持的shell

1
2
3
4
5
cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

查看默认的shell

1
2
echo $SHELL
/bin/bash

如何保持ssh连接

有时候使用ssh连接服务器,只是一会儿没用就自动断开连接了,又得重新连,很烦人,那么有没有办法可以让连接保持很久不断开呢?那肯定是有的

客户端配置(Linux/Mac)

1
2
3
4
5
6
# *表示所有服务器
Host *
# 与服务器连接的超时间隔,单位s。如果没有从服务器接收到任何数据,SSH将通过加密通道发送一条消息,请求服务器做出响应。默认是0,表示不会发消息给服务器
ServerAliveInterval 120
# 设置在SSH没有从服务器接收任何消息的情况下可以发送的服务器存活消息的数量。如果在发送服务器活动消息时达到该阈值,SSH将断开与服务器的连接,从而终止会话。默认值为3。
ServerAliveCountMax 30

按照上述配置 120*30 = 3600s,也就是一小时,在客户端和服务器之间没有数据传输的情况下,可以存活一小时

客户端配置(Windows)

windows一般都是使用ssh工具来进行连接的,找一下工具中有没有配置keepalive时间的地方

服务端配置

在/etc/ssh目录下的sshd_config就是用来配置ssh的,其对于客户端连接的配置默认是这样的

1
2
3
4
5
6
# 给客户端发送TCP kepalive消息
TCPKeepAlive yes
# 设置超时时间(以秒为单位),超过该时间后,如果未从客户端接收到数据,SSH服务器将通过加密通道发送消息,请求客户端响应。默认值为0,表示不会将这些消息发送到客户端。
ClientAliveInterval 120
# 设置在SSH服务器没有从客户端接收任何消息的情况下可以发送的客户端存活消息的数量。如果在发送客户机活动消息时达到该阈值,SSH服务器将断开与客户机的连接,从而终止会话。默认值为3。
ClientAliveCountMax 30

按照上述配置 120*30 = 3600s,也就是一小时,在客户端和服务器之间没有数据传输的情况下,可以存活一小时

然后重启下ssh就可以了

1
service sshd reload