• LINUX运维常用命令


        服务器监控

        开源解决方案

            Nagios
            zabbix
            等
        
        主要的监控项
            CPU
                cat /proc/cpuinfo
                    * /proc/是内存空间中的系统操作命令,并非磁盘中的实际存储空间
                    
                vmstat [间隔时间] [执行次数]
                    基础组件
                    第一行数据不准确(刚开机是准的,但是程序执行过后就不准了)
                top
                    集成了很多系统信息在里面
                    f 设置展示的信息
                    h 显示所有可用命令
                    1 显示所有CPU的核心数
                        0.0%sy 锁占用(很少超过10%)
                        0.0%id 空闲CPU百分比
                        0.0%wa IO等待(iowait)
                        0.0%hi 硬件中断
                        0.0%si 软件中断
                        0.0%st 实时
                        swap 虚拟内存
                mpstat
                    个别系统包含此命令,有些服务器没有
            内存
                cat /proc/meminfo
                    当前系统的运行信息
                    MemTotal 总内存
                    MemFree
                    Buffers
                    Cached
                topfree / free
                    -m
                    total 总内存
                    used 已占用
                    free 空闲
                        空闲内存应当由free与cached相加取得。
                    shared
                    buffers
                    cached 缓存空间。当存在大量I/O读写的情况下,cache会大量占用。
                vmstat
                
                
                查看挂载
                    df - hP
                        可以发现目录是挂载盘,但是看不出挂载位置
                    mount
                        不要跟任何参数,否则就是重新挂载
                        挂载位置、挂载方式(只读/读写等)
                        
                        cat /etc/exports 配置允许挂载的IP地址,挂载的方式等参数
                
                
                /dev/shm 共享内存
                    所有在该目录下创建的文件是不占用磁盘空间的,是创建在内存空间中。
                    比在磁盘中运行速度会快很多。
                内存不足
                    两种内存不足情况:
                         1、堆内存不足
                         2、实际内存不足
                    
            网络
                /pro/net/dev
                /sys/class/net/dev
                netstat
                    路由表
                ifconfig
                    查看两条机器是否从属于同一子网,应该看路由表与掩码
                cat /proc/net/dev
                    查看网络配置
                cat /sys/class/net/eth0/address
                cat /sys/class/net/eth0/iflink
                    1 禁用
                    2 启用
                cat /sys/class/net/eth0/statistics/rx_bytes
                    利用该值来监控带宽数据
                    
                    编写脚本监控实际带宽,关注峰值速度
                    --------------------------------------------
                        while true
                        > do
                        > a=`cat /sys/class/net/eth0/statistics/rx_bytes`
                        > sleep 1
                        > b=`cat /sys/class/net/eth0/statistics/rx_bytes`
                        > echo $(($((b-a))/1024/1024)) MB/s
                        > done
                    --------------------------------------------
                
            存储
                mount
                df
                查看挂载
                    df - hP
                        可以发现目录是挂载盘,但是看不出挂载位置
                    mount
                        不要跟任何参数,否则就是重新挂载
                        挂载位置、挂载方式(只读/读写等)
                        
                        cat /etc/exports 配置允许挂载的IP地址,挂载的方式等参数
                
                /dev/shm 共享内存
                    所有在该目录下创建的文件是不占用磁盘空间的,是创建在内存空间中。
                    比在磁盘中运行速度会快很多。
                内存不足
                    两种内存不足情况:
                         1、堆内存不足
                         2、实际内存不足
                du
                fdisk,parted
                lv, vg, pv 相关
                
        java进程监控
            关注点:
                * 堆内存,非堆内存
                * gc频率和效率
                * 堆栈信息
            常用工具:
                (图形化)
                jconsole
                jvisualvm
                
                (命令行)
                jstat <-options> PID
                    -options 查看命令
                jstack
     
                看到的东西是一样的。
                
            内存泄露:每次GC释放后的可用内存空间越来越少,直到最终没有可用空间。但该周
            期有可能很短,也有可能很长,所以需要使用脚本来收集监控数据,进行判断。
     
            
        JVM内存区域
        
            GC线程数不宜过多
            新生代配置略大一些
            
            s0+s1+eden
            old
            sgc / sgc time
            fgc / fgc count
     
    1.curl 测试网络 如果不通返回(7)
    2.mkdir -p (带参数递归创建多个目录) {01..12} m{01..12}
    3.ls 查看当前目录列表
    4.drwxr -xr -x(d表示当前 第一组 第二组:当前用户 第三组:其他用户)
    ls(带l长列表信息 带d查看当前目录 ls --full -time查看时间 )
    5.cat 查看文件内容(带n 加载行数) vi进行编辑
    6.head (-1表示第一行 默认10行)
    7.echo "123" >> wef/q.txt(追加信息到文件)
    8.head -4 q.txt |tail -3(文件内容第2行到第四行)
    9.free(查看内存 接参数大小) cached缓存io
    10.cat /proc
    cat /proc/sys/vm/drop_caches (修改0为1 清理数据)
    echo "1" > /proc/sys/vm/drop_caches清理cached io缓存 不清理INODE
    >   是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;
    一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节);
    >>
    这个是将输出内容追加
    11.cat /proc/cpuinfo |grep processor|wc -l(查看CPU核心数|wc -l统计行数  |less查阅文件翻页)
    12.top (前面系统时间 up开机时长 同uptime tasks:多少个进程 运行 睡眠 停止 僵死)
    13.last(pts虚拟终端 登录信息)
    14.ps -ef查看当前进程(带[]表示系统进程  grep 模糊查询 grep[-A -B -C (数字)]查询关键字上文、下文、上下文多少行--)
    15.查看端口 netstat -lntp  route -n[Gateway网关 0.0.0.0全网段 IP*掩码=网关](服务起不来问题查看进程及端口监听)
    16.rpm -qa |grep which(查看文件有没有安装及版本信息)
    17.yum (-list 查看所有安装包 -provides fc *)
    18.kill  (-l查看所有信号 -9强制杀进程 -15等待进程执行完再杀)
    19.df -h(查看文件系统 /opt /boot )
    du -sh 查看当前目录大小(接目录指定某个目录)
    20.ll /proc/|wc -l (统计目录文件数量) ls -a
    21.cp file newfile (复制) mv file newfile(移动文件,重命名)
    22.ls -l|xargs df -hs(赋予参数)
     
     
    vi
    :/?
    :s/no/yes/ g
     
    sed 's/no/yes/ g' file(显示效果但不修改文件 -i)
    find  路径 -maxdepth -mindepth -iname '文件名称'()
    vi x删除 u撤销 dd删除 yy复制
    grep (-E多个条件 -v反向筛选 -r递归 -n行数)
    last |gawk '{}' $+行号第几列 0表示整行 print输出
    a=10
    if [[ $a = 10 ]];then echo "yes" ;else echo "no";fi  -eq
    gawk语法判断需要==
     
     
    1.gawk 2.sed 3.正则
    打war包执行命令
    jar -cvf xxxx.war ./*
    当前目录下所有目录的大小以M为单位 通过大小排序
    du -sm *|sort -n
    通过关键字搜索日志
    find log |xargs grep ""
    寻找进程占用程序windows
    netstat -aon|findstr "8080"
    tasklist|findstr "4060"
    taskkill /F /PID 4060
     
    grep -E "1592" 0520.log >20170522-1.log
     
    nslookup  解析网址
     
    cat /etc/passwd
    https://stackoverflow.com/
     
    find 目录名 -type f -iname'*.pdf'|wc -l
     
    find 目录名 -type f|xargs file |grep -i "PDF document"|wc -l
     
    -----------------------------------------服务器监控命令----------------------------------------
     
     
    iostat  查询CPU使用情况 磁盘IO情况
    free -m 查看内存
    mpstat -P ALL 显示每个服务器的CPU统计信息,或者每个处理的CPU统计信息
    netstat 显示很多有关网络方面的信息 socket 使用情况 路由情况 网卡情况 协议情况 网络流量统计
    nmon 查看处理器利用率 内存使用率 运行队列信息 磁盘IO统计 网络IO统计 换页统计
    pmap 显示进程占用的内存量
    ps/pstree ps告诉我们每个进程使用的内存量以及所消耗的CPU时间 pstree 则会告诉我们进程间的父子关系
    sar 涵盖CPU利用信息
     
     
    tail -200 /var/log/messages  |grep error
     
    tracert www.baidu.com --第一个IP地址为出口网关
     
     
    查看日志
    sed -n'/2018-03-04 17:00:00/,/2018-03-04 19:00:00/p' server.log(查看时间段日志记录)
    sed -n '60000,100000p' server.log(查看日志60000行到100000行)
     
    批量替换a文本内容1001为1002
    sed -i "s/1001/1002/g " a.txt
     
    抓包分析
    netstat -nap | grep pid  根据进程号查看端口
    tcpdump -i eth0 port 35530 根据端口抓包直接在屏幕上显示
    tcpdump -i eth0 port 35530 -w captured.pcap 抓取到的包的数据即在captured.pcap文件中,在windows上用wireshark软件打开即可
     
    ssh -v -p port ip 测试网络联通
    ssh -l user ip
    ssh user@ip 
    连接另外一台主机
    ll -lh查看目录下文件大小
     
    起别名
    alias ss=ssh
     
     
     
     
  • 相关阅读:
    mysql查看所有触发器以及存储过程等操作集合【转】
    Hutool之Http工具类使用
    SpringCloud之Sentinel
    SpringCloud之Gateway
    com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
    [AWS DA Guru] SQS
    [AWS DA Guru] Kinesis
    [AWS DA Guru] SNS & SES
    [Typescript] Prevent Type Widening of Object Literals with TypeScript's const Assertions
    [AWS] Updating Elastic Beans Talks & RDS
  • 原文地址:https://www.cnblogs.com/zpbolgs/p/15268295.html
Copyright © 2020-2023  润新知