1.NETBISO:是附属于tcp/ip的一个协议,是工作在会话层的协议,用于实现局域网内的计算机的发现功能。
2.linux上网络带宽的测试工具:
iperf服务启动方式
先看下服务端和客户端的启动方式:
服务端
iperf -s
客户端
iperf -c 服务端IP地址
注意:iperf默认测试的是TCP协议的带宽,如果需要测试UDP的带宽,则需要加上-u选项
iperf常用选项
iperf选项分为 通用选项、服务端特定选项以及客户端特定选项
通用选项
-f <kmKM> 报告输出格式。 [kmKM] format to report: Kbits, Mbits, KBytes, MBytes
-i <sec> 在周期性报告带宽之间暂停n秒。如周期是10s,则-i指定为2,则每隔2秒报告一次带宽测试情况,则共计报告5次
-p 设置服务端监听的端口,默认是5001
-u 使用UDP协议测试
-w n<K/M> 指定TCP窗口大小
-m 输出MTU大小
-M 设置MTU大小
-o <filename> 结果输出至文件
服务端选项
-s iperf服务器模式
-d 以后台模式运行服务端
-U 运行一个单一线程的UDP模式
客户端选项
-b , --bandwidth n[KM] 指定客户端通过UDP协议发送数据的带宽(bit/s)。默认是1Mbit/s
-c <ServerIP> 以客户端模式运行iperf,并且连接至服务端主机ServerIP。 eg: iperf -c <server_ip>
-d 双向测试
-t 指定iperf带宽测试时间,默认是10s。 eg: iperf -c <server_ip> -t 20
-P 指定客户端并发线程数,默认只运行一个线程。 eg,指定3个线程 : iperf -c <server_ip> -P 3
-T 指定TTL值
3.vmware相关知识点
厚置备延迟置零:立刻分配制定空间,但是不立即抹除物理卷数据
厚置备置零:立刻分配制定空间,并且立即抹除物理卷数据
精简置备:随着使用的需要,逐步扩大所需的空间
4.存储的单控与双控,主要体现在连接服务器的数量上。例如单控可链接两台,则双控可链接四台。
5.seq命令 可以连续或者指定间隔的输出数字
例如:seq 1 10 指输出1到10
seq 1 2 10 指输出1到10 间隔为2 1 3 5 7
6.SAS与其他技术的比较
7. 使用rz和sz命令
需要安装lrzsz包,yum install 即可
8. 开机添加自动运行脚本
rc.local是全局性的文件,level1-5都会执行,注意看/etc/rc.local的配置文件,要赋予/etc/rc.d/rc.local权限,chmod + x 才可以运行
rcX.d是对应启动等级所需要执行的脚本,其中需要注意的是命名规则
当运行级别由低到高时,会运行以S开头的脚本,当级别由高到低时,会运行以K或stop的脚本
rcX.d文件夹中都是软连接,只想init.d中的实际脚本,并且脚本与链接名必须对应。形如 S20nginx.sh
-> nginx.sh,测试,成功
9. - 特殊符号的作用
cd -
这代表变更工作目录到"上一次"工作目录。
单独的 - 代表标准输入
10.
ssh RSA不对的问题
简单的解决方法直接删除know_hosts文件
或者用命令ssh-keygen -R [服务器ip address]
11. HBA
主机总线适配器 host bus adapter
hba卡的作用简单的可以说与网卡类似,wwn号类似mac地址,是唯一标识的。HBA卡常见的是FC HBA和ISCSI HBA。 分别用于fc san 和IP san中。为什么需要HBA卡呢,它是用来接受指令后进行繁重的解指令等操作的,所以我们需要它。
万兆网卡一般说的是以太网卡,只不过它使用光信号。
12.exec命令
一般用在shell脚本中,执行命令
如果在当前终端执行,执行完之后会立即退出终端。
13. systemctl status 情况分析
vendor preset enabled
供应商预置启用
14.查看linux服务器cpu个数
cat /proc/cpuinfo |grep physical id | sort | uniq | wc -l
查看cpu型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
15.快速配置网卡浮动ip
ifconfig eth1:0 192.168.1.1 netmask 255.255.255.0 up 配置浮动ip或者别名。使同一块网卡监听多个地址。
16.三个grep
egrep = grep -E 使用正则表达式
fgrep = grep -F 不使用
grep -n显示行号 -A显示匹配到的后A行-B显示匹配到的前B行
17.网页错误解释
2XX代表请求完成,3XX代表网站重定向,4XX代表客户端错误,5XX代表服务端错误
18. 关于jvm配额
-xms初始堆大小(最小堆大小) -xmx 最大堆大小 -xmn 年轻代大小 -xss每个线程堆大小
elastic中尽量最大和最小相等
整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.
增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
详解文章 http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
19. 同步硬件时钟
20. 查看网卡的mac地址,UUID地址
nmcli dev show
nmcli con show
或者查看文件
/etc/udev/rules.d/70-persistent-net.rules
21. uptime参数详解
例:04:03:58 up 10 days, 13:19, 1 user, load average: 0.54, 0.40, 0.20
1. 当前时间 04:03:58
2. 系统已运行的时间 10 days, 13:19
3. 当前在线用户 1 user
4. 平均负载:0.54, 0.40, 0.20,最近1分钟、5分钟、15分钟系统的负载
22. top命令
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。
交互式模式下:
h:显示帮助画面,给出一些简短的命令总结说明;
k:终止一个进程;
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。
23. xargs用法
xargs用作替换工具,读取输入数据重新格式化后输出。
-n选项 num 多行输出: 每行几个字符
-d选项, 可以自定义一个定界符:
-i选项,使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,当-I与xargs结合使用,每一个参数命令都会被执行一次。例:ls *.jpg | xargs -n1 -I cp {} /data/images
其他用法:find . -type f -name "*.log" -print0 | xargs -0 rm -f
xargs -0将\0作为定界符。
加-i 参数直接用 {}就能代替管道之前的标准输出的内容;
加 -I 参数 需要事先指定替换字符
24.USER1的妙用
USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。
25. 查询软件安装路径
rpm -ql
26.
文件的umask最高值是666 系统不允许你创建一个文件时,就赋予她执行权限,目录的最高值是777
当文件的umask中由任意一位奇数时,则减去之后那位要加1 比如 666-035=631+011=642
27.
fork机制
fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程。原进程返回新进程的pid,新进程返回o
28.
echo "- - -" > /sys/class/scsi_host/host0/scan
29.
LILO引导程序的劣势在于每次更新配置都需要重新配置LILO
linux中设备的命名规则(前提是基于GRUB引导加程序),scsi设备形如sda,sdb 。hdd设备形如hda,hdb
30.
sudo -l 查看用户当前的可执行权限
31. 事件驱动模型
当产生一个新的连接时,通常由三种处理方式
打开一个新的进程处理
打开一个新的线程处理
将新的请求放入一个事件列表,并采用非阻塞io的方式处理
32. top中的id参数
98.7% id 空闲CPU百分比
33. hdparm
这儿命令仅仅适用于IDE接口的设备
34. watch命令 周期性的显示某个命令的执行结果
1.命令格式:
watch[]参数[命令]
2.命令功能:
可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令
3.命令参数:
-n或--interval watch 缺省每2秒运行一下程序,多用于周期性执行命令/定时执行命令。
-d或-differences 用 -d 或--differences选项watch 会高亮显示变化的区域。而-d = cumulative 选项会把变动过的地方(不管最近的那次有没有变动)都会高亮显示出来。
-t或-no-title 会关闭watch 命令在顶部的时间间隔命令,
35. linux的cup进程
与打印机相关
36. 开启服务器ip转发功能
cat /proc/sys/net/ipv4/ip_forward 1是开启0是关闭
37. linux挂载虚拟文件
mount –o loop linuxsetup.iso /mnt/iso1
在linux 不需要虚拟光驱,就可以直接读取iso文件
使用losetup将文件转化为块设备
losetup /dev/loop0 /var/loop.img
38. 通过ping命令简单判断服务器操作系统 (非一定可靠)
ping命令
TTL=128,这是WINNT/2000/XP。
TTL=32,这是WIN95/98/ME。
TTL=256,这是UNIX。
TTL=64,这是LINUX
39. 重新扫描硬件设备
echo "- - -" > /sys/class/scsi_host/host0/scan
40. set -e
#!/bin/bash
set -e
command 1
command 2
...
exit 0
你写的每个脚本都应该在文件开头加上set -e,这句语句告诉bash如果任何语句的执行结果不是true则应该退出。这样的好处是防止错误像滚雪球般变大导致一个致命的错误,而这些错误本应该在之前就被处理掉。如果要增加可读性,可以使用set -o errexit,它的作用与set -e相同。
set -C来设置如果输出重定向文件已经存在则不覆盖。使用set +C来取消set -C的效果。
41. ()的妙用
()
命令组.在括号中的命令列表, 将会作为一个子shell来运行.
在括号中的变量,由于是在子shell中,所以对于脚本剩下的部分是不可用的. 父进程, 也就是脚本本身, 将不能够读取在子进程中创建的变量, 也就是在子shell中创建的变量.
(cmd1;cmd2;cmd3)
42.
$() 存放命令 ${}存放变量
字符串比较用双中括号[[ ]];算数比较用单中括号[ ]——左右留空格
if [ $i -lt 5 ] 用这种符号的只能用单括号
if [ $a -ne 1 -a $a != 2 ]
if [ $a -ne 1] && [ $a != 2 ]
if [[ $a != 1 && $a != 2 ]] 用这个管道符的只能用双括号
43.
使用&后台运行程序:
结果会输出到终端
使用Ctrl + C发送SIGINT信号,程序免疫
关闭session发送SIGHUP信号,程序关闭
使用nohup运行程序:
结果默认会输出到nohup.out
使用Ctrl + C发送SIGINT信号,程序关闭
关闭session发送SIGHUP信号,程序免疫
平日线上经常使用nohup和&配合来启动程序:
同时免疫SIGINT和SIGHUP信号
同时,还有一个最佳实践:
不要将信息输出到终端标准输出,标准错误输出,而要用日志组件将信息记录到日志里
44.
计算密集型任务比较消耗cpu,IO密集型则是任务越多,cpu效率越高。
45. curl可以观察到下载的速度变化
46. ntp配为本地源
在配置文件中加入 server 127。127.1.0
fudge 127.127.1.0 stratum 10
即可
47. 网络分区
由于网络的断连,导致对端两个节点都以为对方掉线了。从而导致的现象
48. 动画解释RAFT算法选举过程(很好的网站)
http://thesecretlivesofdata.com/raft/
49. FD文件描述符
fd为打开文件的文件描述符,而每个进程都有一张文件描述表,fd文件描述符就是这张表的索引,同样这张表中有一表项,该表项又是指向前面提到打开文件的file结构体,file结构体才是内核中用于描述文件属性的结构体)。
49.cgroup
cgroup实现资源限制,namespace实现资源隔离
全称是control group,用来实现进程cpu,内存,io等的限额,第六天中的设置docker容器配额的参数,其实就是在配置cgroup。
50.namespace
每个容器拥有自己的文件系统,网卡等资源,并且相互隔离且只有容器本身使用。linux实现这种技术的方式成为namespace,它实现了容器间的资源隔离。
Linux使用了6种namespace,分别时UTS,IPC,PID,Network,User和Mount。
51. ll命令的权限后面的数字的含义
表示文件的个数,如果是文件,就是1,目录的话则要看具体内容了。
-是普通文件,d是目录,l是链接,b是块设备,c是字符设备文件,
52. lvm扩容
根分区扩容后要用xfs_growfs来完成扩容的最后一步
其他分区用resize2fs完成
或者说 xfs仅针对xfs文件系统(这个没有做测试是否如此)
53. keepalive HA
ip a 可以看到浮动地址
ifconfig -a 看不到
54 . .gz结尾的文件
用gunzip 解压即可 gzip压缩成.gz格式
55.
ssh_config 客户端
sshd_config 服务端
56. 关于CI/CD的理解
57. 同时创建多个目录
mkdir -p /etc/{dir1,dir2,dir3}
58.使用grep时,出现Binary file (standard input) matches
增加参数-a 解决
59. 磁盘水位
Cache中高低水位是指Cache中存储脏数据的最高限制值和最低限制值;
Cache高低水位
Cache高低水位是指Cache中存储脏数据的最高限制值和最低限制值。如果Cache的高、低水位设置不合理,会影响Cache的写性能。
当Cache中脏数据容量达到最高限制值时,系统将Cache中的脏数据高速同步到硬盘中;当Cache中存储的脏数据容量小于最高限制值而大于最低限制值时,系统将Cache中的脏数据中速同步到硬盘中;当Cache中存储的脏数据容量小于最低限制值时,系统低速同步脏数据到硬盘中。
高低水位的设置建议:
高水位不宜设置的太高。如果高水位设置的值太高页面缓冲小,如果前端I/O数量突然增加,会产生I/O波动和时延增大的现象,从而影响写性能。
低水位不宜设置太低。如果低水位设置的值太低,会导致后端将缓存数据频繁写入磁盘,降低写性能。
高低水位的间距不宜太小。如果取值间距太小,不能很好的利用后端带宽。
系统推荐的Cache高水位和低水位的取值分别为80%和20%。
60. 透写和回写
Write-through:向高速Cache写入数据时同时也往后端慢速设备写一份,两者都写完才返回。
Write-back:向高速Cache写完数据后立即返回,数据不保证立即写入后端设备。给调用者的感觉是速度快,但需要额外的机制来防止掉电带来的数据不一致。
61. xz压缩与解压
xz压缩文件方法或命令
xz -z 要压缩的文件
如果要保留被压缩的文件加上参数 -k ,如果要设置压缩率加入参数 -0 到 -9调节压缩率。如果不设置,默认压缩等级是6.
xz解压文件方法或命令
xz -d 要解压的文件
同样使用 -k 参数来保留被解压缩的文件。
创建或解压tar.xz文件的方法
习惯了 tar czvf 或 tar xzvf 的人可能碰到 tar.xz也会想用单一命令搞定解压或压缩。其实不行 tar里面没有征对xz格式的参数比如 z是针对 gzip,j是针对 bzip2。
创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz
解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。
62. Ubuntu创建用户,登录图形界面
ubuntu用户分两种,useradd创建用户,adduser创建可以登录图形界面用户
63. centos镜像仓库
https://archive.kernel.org/centos-vault/7.5.1804/os/x86_64/
cloud image 云镜像国内源
https://mirrors.ustc.edu.cn/centos-cloud/centos/7/images/
64. cloudinit ssh_pwauth
cloudinit会修改sshd_config中的permitrootlogin参数
65. 云主机手动扩容根分区
https://support.huaweicloud.com/usermanual-evs/evs_01_0072.html
66. 关于主机名 hostnamectl
hostnamectl 可用于查询与修改系统主机名以及其他相关设置。 所谓"主机名",其实有三种不同的含义:
"pretty"主机名, 仅供人类阅读,可以包含各种特殊字符,且无长度限制。 例如"Lennart's Laptop"(必须是UTF-8编码)。 pretty(易读主机名)、chassis(设备类型)、icon(图标名称)存储在 /etc/machine-info 文件中, 详见 machine-info(5) 手册。
"static"主机名,用于在系统启动时设置内核的主机名,仅可包含 "-","a-z","0-9" 字符,且最大不超过64个字符长度。 例如"lennarts-laptop"。此种主机名就是通常所说的"主机名",存储在 /etc/hostname 文件中, 详见 hostname(5) 手册。
"transient"主机名, 是从网络配置中获得的 fallback 主机名, 同样仅可包含 "-","a-z","0-9" 字符, 且最大不超过64个字符长度。 如果存在"static"主机名且不等于"localhost", 那么将忽略"transient"主机名。
可以使用 systemd-firstboot(1) 初始化已挂载(但未启动)的系统镜像的 主机名(hostname)。
67. 永久修改语言环境 locale
https://blog.csdn.net/liguangxianbin/article/details/79814964
68. 存储相关
文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,一次性连续读取多个扇区,即一次性读取一个“块”(block)。
这种由多个扇区组成的“块”,是文件存取的最小单位。
“块”的大小,最常见的是4KB,即连续八个sector组成一个block。
读写原理
69. linux 盘符 漂移相关
http://ilinuxkernel.com/?p=958
70. ntp工作原理:
https://www.eecis.udel.edu/~mills/ntp/html/warp.html
71. 红帽 cloudinit的文档
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_cloud-init_for_rhel_8/index