持续更新……
1.NETBISO:是附属于tcp/ip的一个协议,是工作在会话层的协议,用于实现局域网内的计算机的发现功能。
2.linux上网络带宽的测试工具:
iperf服务启动方式
先看下服务端和客户端的启动方式:
服务端
iperf -s
客户端
iperf -c 服务端IP地址
注意:iperf默认测试的是TCP协议的带宽,如果需要测试UDP的带宽,则需要加上-u选项
iperf常用选项
iperf选项分为 通用选项、服务端特定选项以及客户端特定选项
通用选项
-f
-i
-p 设置服务端监听的端口,默认是5001
-u 使用UDP协议测试
-w n
-m 输出MTU大小
-M 设置MTU大小
-o
服务端选项
-s iperf服务器模式
-d 以后台模式运行服务端
-U 运行一个单一线程的UDP模式
客户端选项
-b , --bandwidth n[KM] 指定客户端通过UDP协议发送数据的带宽(bit/s)。默认是1Mbit/s
-c
-d 双向测试
-t 指定iperf带宽测试时间,默认是10s。 eg: iperf -c
-P 指定客户端并发线程数,默认只运行一个线程。 eg,指定3个线程 : iperf -c
-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作为定界符。
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 即可
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 看不到
53 . .gz结尾的文件
用gunzip 解压即可