Linux系统管理技巧

一、 监控系统的状态

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

常用: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工具

你可能感兴趣的:(Linux系统管理技巧)