一、 监控系统的状态
1.使用w命令查看当前系统的负载
第一行:时间、系统运行时间、登录用户数、平均负载(1min,5min,15min)
第二行:当前登录的用户名、地址等信息
这里主要查看的是1分钟内系统的平均负载值,它表示单位时间内使用CPU的活动进程数。值越大说明服务器压力越大,一般情况不要大于服务器的CPU数量。
查看服务器CPU的方法:
cat /proc/cpuinfo [ 这个文件记录了CPU的详细信息 ]
grep -c 'processor' /proc/cpuinfo 就能看到当前系统有几个CPU了。
2.使用vmstat命令监控系统的状态
vmstat命令打印的结果共分为6部分:procs、memory、swap、io、system、cpu,其中重点关注r、b、si、so、bi、bo这几列信息
r(run):表示运行或者等待CPU时间片的进程数
b(block):表示等待资源的进程数
si:表示由交换区写入内存的数据量,单位为KB
so:表示由内存写入交换区的数据量,单位为KB
bi:表示从块设备读取数据的量(读磁盘),单位为KB
bo:表示从块设备写入数据的量(写磁盘),单位为KB
如果磁盘IO压力很大,bi、bo的数值会比较高;当si、so的数值比较高或者不断变化时,说明内存不够了。
通常我们使用vmstat 1 5 查看系统状态,表示每隔1s出输出一次,共输出5次。
3.使用top命令显示进程所占系统资源
top命令用于动态监控进程所占的系统资源,每隔3秒变一次。它的特点是把占用系统资源最高的进程放到最前面。用top重点查看的还是下面进程使用系统资源的详细情况,其中RES为进程所占的内存大小,%CPU为上次更新到现在的CPU时间占用百分比,%MEM为进程使用的物理内存百分比,COMMAND为进程名称。在top状态下,按Shift+m可以按照内存使用大小排序,按1可以列出所有核CPU的使用状态,按q可以退出top。
经常使用使用命令top -bn1 非动态打印系统资源的使用情况。
4.使用sar命令监控系统状态(这个介绍如何查看网卡流量)
安装:yum install -y sysstat; sar数据文件默认在/var/log/sa/目录下
查看网卡流量历史:sar -n DEV
这个命令会把当前的记录的网卡信息打印出来,每隔10分钟记录一次;IFACE表示设备名称,rxpck/s表示每秒进入收取包的数量,txpck/s表示每秒发出去的包数量,rxkB/s表示每秒收取的数据量,txkB/s表示每秒发送出去的数据量。
实时查看网卡信息:
sar -n DEV 1 5
也可以使用-f选项查看某一天的网卡流量历史: sar -n DEV -f /var/log/sa/sa08
查看历史负载: sar -q
5.使用nload命令查看网卡流量(更直观显示)
yum -install -y eqel-release; yum install -y nload
输出的结果分两组:Incoming:进入网卡的流量;Outcoming:网卡出去的流量
主要关注Curr行的数据即可。
6.使用free命令查看内存使用状况
free命令可以查看当前系统的总内存大小以及使用内存的情况。(有-m,-g,-h选项)
total:内存总大小
used:真正使用的实际内存大小
free:剩余物理内存大小(没有被分配,纯剩余)
shared:共享内存大小
buff/cache:分配给buffer和cache的内存总共有多大
available:系统可使用内存有多大,包含free
7.使用ps命令查看系统进程
ps命令是专门显示系统进程的命令。常用的有 ps aux 或者 ps -elf等,具体请使用man查看
系统进程的参数:PID:表示进程PID,注意尽量别使用kill pid命令,容易丢失数据
STAT:进程状态(有这几种:DRSTWXZ<NLsl+)
常用:ps aux |grep -c sshd ps连同管道符一起使用,该命令表示查看某个进程或者它的数量
(注意上面的这个命令查出来的数量需要减1,因为grep命令算进去了!)
8.使用netstat命令查看网络状况
最常用的两种用法:netstat -lnp 打印当前系统启动哪些端口 和 netstat -an 打印网络连接状况
netstat -lnp |head -n 30 这里只显示前30行; netstat -an |head -n 20 .....
二、抓包工具
1.tcpdump工具
tcpdump -nn -i ens33(-nn作用是第3/4列显示成IP+端口,-i 后跟设备名称,ens33网卡名称)
tcpdump -nn -i ens33 -c 100 -c表示抓包数量
tcpdump -nn -i ens33 port 22 只抓22端口的包
tcpdump -nn -i ens33 tcp and not port 33 指定抓tcp的包, 但是不要22端口号的
tcpdump -nn -i ens33 port 22 and port 53 ...... 只抓22 和 53 端口号的包
2.wireshark工具
安装:yum -install -y wireshark
简单举例:tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"
显示:[时间] [IP] [addr] [method] [html]
三、Linux网关相关
1.用ifconfig命令查看网卡ip,配置文件为/etc/sysconfig/network-scripts/ifcfg-xxx
2.一个网卡配置多个IP:复制ifcfg-ens33,修改NAME,DEVICE,IPADDR,重启
3.查看网络连接状态:mii-tool ens33 或者 ethtool ens33
4.临时更改主机名:hostname [name], 修改主机名:hostnamectl set-hostname [name]
5.设置DNS:临时修改,直接修改/etc/resolv.conf;永久修改则需要修改网卡信息,修改/etc/hosts文件
四、Linux的防火墙
1.SELinux:临时关闭 setenforce 0 ; 永久:修改文件/etc/selinux/config,SELINUX=disabled
获取防火墙状态getenforce
2.Centos5和6的防火墙为 netfilter; Centos7的为firewalld
五、Linux系统的任务计划
六、Linux系统服务管理
七、Linux下的数据备份工具rsync
八、Linux系统日志
九、xargs与exec
十、screen工具