今天是11月 28号!这一年快过去了
说起来还是蛮伤心的! 哎!
Linux 系统日常管理
w 查看当前系统的负载
[root@localhost ~]# w
12:21:13 up 6:27, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 06:09 5:48m 0.09s 0.09s -bash
root pts/0 192.168.1.143 07:57 0.00s 0.54s 0.02s w
root pts/1 192.168.1.143 11:20 55:08 0.11s 0.11s -bash
第一行从左面开始显示的信息一次为:时间 系统运行时间,登录用户数
平均负载
注意load average, 第一个数值表示1分钟内系统的平均负载值
第二个数值表示5分钟内系统的平均负载值
第三个数值表示15分钟内系统的平均负载值
/cat/cpuinfo 这个文件记录了cpu的详细信息,
vmstat 监控系统的状态
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 6280 104684 318764 0 0 39 44 20 22 0 1 99 1 0
相比于w vmstat 更能全面的显示系统的状态
vmstat 显示的打印的结果分为6部分:procs,memory,swap,io,system,cpu.
重点关注r b si so bi bo几列
1)procs 显示进程相关信息
r:表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则
说明cpu不够用了
b:表示等待资源的进程数,比如等待I/O,内存等,如值长时间大于1,则注意
2)memory内存相关信息
swpd:表示切换到交换分区中的内存数量
free:当前空闲的内存数量
buff:缓冲大小 (即将写入磁盘的)
cache:缓存大小(从磁盘中读取的)
3) swap内存交换情况
si: 由交换区写入到内存的数据量
so:由内存写入到交换区的数据量
4)io 磁盘使用情况
bi:从块设备读取数据的量(读磁盘)
5)system 显示采集间隔发生的中断词数
in: 表示在某一时间间隔中观测到得每秒设备中断数
cs: 表示每秒产生的上下文切换词数
6)CPU显示cpu的使用状态
us:显示了用户下所花费 cpu时间的百分比
sy:显示系统话费cpu时间百分比
id:表示cpu处于空闲状态的时间百分比
wa:表示I/O等待所占用cpu时间百分比
st:表示被偷走的cpu所占百分比(一般都为0,不用关注)
top 显示进程所占系统资源
这个命令用于动态监控进程所占系统资源,每隔3秒变一次。这个命令的特点
就是把占用系统资源 (cpu 内存,磁盘IO等)最高的进程放到最前面
在top下,“shift + m" 可按照内存使用大小排序。按数字”1“可以列出各颗cpu状态
top -bn1 表示菲动态打印系统资源使用状态
和top命令唯一的区别就是,它一次性全部把所有信息输出出来而非动态显示
sar 监控系统状态
可监控系统所有资源状态,比如平均负载,网卡流量、磁盘状态
内存使用等等,不同其他工具:它可以打印历史信息,可显示当天从零点当当前
时刻的系统状态信息 可 yum install -y sysstat 安装 初次使用会报错,是因为
sar工具还没生成相应的数据库文件,数据库文件在”/var/log/sa"下
sar 工具 方便检查网卡流量
free 查看内存使用状况
[root@localhost ~]# free
total used free shared buffers cached
Mem: 510936 257020 253916 0 115740 87876
-/+ buffers/cache: 53404 457532
Swap: 1048568 0 1048568
这个真正的内存是第二行的457532,真正使用的是第二行的53404
因为系统初始化的时候,分配很大一部分内存给缓存,
另外可以加-m 或者-g 分别以M或G为单位打印内存使用状况
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 3792 1404 ? Ss 08:19 0:03 /sbin/init
root 2 0.0 0.0 0 0 ? S 08:19 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 08:19 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 08:19 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 08:19 0:00 [migration/0]
root 6 0.0 0.0 0 0 ? S 08:19 0:00 [watchdog/0]
PID: 进程的id,
STAT:表示进程的状态,状态有:
D 不能中断的进程(通常为IO)
R 正在运行中的进程
S 已经中断的进程(通常都是这个状态)
T 已经停止或者暂停的进程,如正在运行一个命令(ctrl z 暂停)
W 从内核2.6xx以后,表示为没有足够的内存页分配
X 已经死掉的进程
Z 僵尸进程,一半不会出现
< 高优先级进程
N 低优先级进程
L 在内存中被锁了内存分页
s 主进程
l 多线程进程
+ 代表在前台运行的进程
eg. 查看某个进程或者它的数量
[root@localhost ~]# ps aux |grep -c mingetty
6
netstat 查看网络状况
netstat 命令用来打印网络连接状况、系统所开放端口、路由表等信息
常用组合:netstat -lnp (打印当前系统启动那些端口)
netstat -an (打印网络连接状况)
抓包工具 tcpdump
查看哪些网卡上都有哪些数据包,或者对于服务器上的流量攻击
使用抓包工具抓数据包,就知道有哪些IP在攻击了
[root@localhost ~]# tcpdump -nn -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
19:13:56.689147 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 2793829986:2793830182, ack 1384443306, win 1067, length 196
19:13:56.691389 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 196:376, ack 1, win 1067, length 180
19:13:56.691541 IP 10.72.137.53.50827 > 10.72.137.159.22: Flags [.], ack 376, win 16266, length 0
19:13:56.694499 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 376:636, ack 1, win 1067, length 260
19:13:56.695659 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 636:800, ack 1, win 1067, length 164
对于上面这个例子,第三列 和第四列显示的信息为哪一个IP+port 在连接哪一个
IP+port,后面的信息是该数据包的相关信息
-i 选项后面跟设备名称,如要抓eth1网卡包,就跟eth1
-nn 的作用是让第三列和第四列显示成IP+端口号的形式
如不加-nn 则显示的是主机名 + 服务名称
Linux 网络相关
ifconfig 查看网卡IP
网卡的配置文件在 /etc/sysconfig/nework-scripts/ifcfg-eth0
如linux上有多块网卡,只想重启某个网卡 可用
# ifdown eth0; ifup eth0
查看网卡连接状态
[root@localhost ~]# mii-tool etho
SIOCGMIIPHY on 'etho' failed: No such device
如果死在服务器上不会显示这样,因是虚拟机所以显示“not supported"
如是真机则显示
[root@localhost ~]# mii-tool etho
eth0: negotiated 100baseTx-FD, link ok
只要看到”link of“ 就说明网卡为连接状态,如显示”no link“说明网卡坏掉了
或者是没有连接网线