zoukankan      html  css  js  c++  java
  • 工作中常用Linux命令--服务器运维

    工作中常用Linux命令--服务器运维

    lsof
    查看端口使用情况 lsof -i:8080
    更多lsof命令使用说明:http://www.cnblogs.com/peida/archive/2013/02/26/2932972.html

    ss
    通过ss -s 显示Socket摘要
    [root@dev-001 ~]# ss -s
    Total: 2467 (kernel 2801)
    TCP: 10323 (estab 2178, closed 7880, orphaned 251, synrecv 0, timewait 7876/0), ports 1554

    Transport Total IP IPv6
    * 2801 - -
    RAW 0 0 0
    UDP 0 0 0
    TCP 2443 2047 396
    INET 2443 2047 396
    FRAG 0 0 0
    更多ss命令使用说明:http://www.cnblogs.com/peida/archive/2013/03/11/2953420.html


    ps
    列出目前所有的正在内存当中的程序
    ps aux
    ps aux | grep tomcat
    显示所有进程信息,连同命令行
    ps -ef
    ps -ef | grep tomcat

    ps aux 是用BSD的格式来显示 java这个进程
    显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND
    ps -ef 是用标准的格式显示java这个进程
    显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD

    ps -eo vsz,rss,comm | grep java

    更多ps命令使用说明:http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html

    iostat
    iostat工具将对系统的磁盘操作活动进行监视
    查看TPS和吞吐量信息 iostat -d -k 1 1
    查看cpu状态 iostat -c 1 3
    更多iostat命令使用说明:http://www.cnblogs.com/peida/archive/2012/12/28/2837345.html


    netstat
    显示网卡列表 netstat -i

    查看机器的当前连接状态
    netstat -anp

    查看端口使用情况
    netstat -tlnp |grep 8080
    netstat -ano | grep 8080

    查询tomcat连接数
    netstat -na | grep ESTAB | grep 8080 | wc -l

    查看当前time_wait的数量
    netstat -an | grep TIME_WAIT | wc -l

    把状态全都取出来后使用uniq -c统计后再进行排序
    netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

    统计机器中网络连接各个状态个数
    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    它会显示例如下面的信息:
    TIME_WAIT 814
    CLOSE_WAIT 1
    FIN_WAIT1 1
    ESTABLISHED 634
    SYN_RECV 2
    LAST_ACK 1
    常用的三个状态是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭。
    参考:http://blog.csdn.net/shootyou/article/details/6622226

    更多 netstat命令使用说明:http://www.cnblogs.com/peida/archive/2013/03/08/2949194.html

    top
    top -c
    top -p 31843
    先输入top,然后再按shift+h 显示线程消耗资源

    top mem consumer: sudo ps -aux | sort -k4nr | head -5 or top, then press M

    更多top命令使用说明:http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html

    vmstat
    vmstat 5 5 监控虚拟内存使用情况 vmstat 5 5(表示在5秒时间内进行5次采样)
    更多vmstat命令使用说明http://www.cnblogs.com/peida/archive/2012/12/25/2833108.html

    free
    显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer
    free -m
    free -g
    更多参数说明:http://www.cnblogs.com/peida/archive/2012/12/25/2831814.html

    iotop

    用来监视磁盘I/O使用状况的工具

    http://man.linuxde.net/iotop

    atop

    http://www.cnblogs.com/bangerlee/archive/2011/12/23/2294090.html

    针对Nginx access.log统计命令
    1、查看当天有多少个IP访问:
    awk '{print $1}' access.log|sort|uniq|wc -l

    查看当天访问次数最多的10个IP
    awk '{print $1}' access.log |sort |uniq -c|sort -nr|head

    2、查看某一个页面被访问的次数:
    grep "/index.php" access.log | wc -l

    3、查看每一个IP访问了多少个页面:
    awk '{++S[$1]} END {for (a in S) print a,S[a]}' access.log

    4、将每个IP访问的页面数进行从小到大排序:
    awk '{++S[$1]} END {for (a in S) print S[a],a}' access.log | sort -n

    5、查看某一个IP访问了哪些页面:
    grep ^111.111.111.111 access.log| awk '{print $1,$7}'

    6、查看2014年6月21日14时这一个小时内有多少IP访问:

    awk '{print $4,$1}' access.log | grep 21/Jun/2014:14 | awk '{print $2}'| sort | uniq | wc -l

     查看当天访问次数最多的时间段
    awk '{print $4}' access.log | grep "21/Jun/2014" |cut -c 14-18|sort|uniq -c|sort -nr|head


    其他命令
    ls -lh 以M,G单位查看文件

    通过kill命令杀掉进程
    kill -s 9 pid
    或kill -9 pid


    watch -n 2 -d free 实时监控内存使用情况
    df -h 查看磁盘使用情况(文件系统的使用情况)
    pstree -p root | grep java pstree以树结构显示进程

    JVM:
    Tomcat debug: -agentlib:jdwp=transport=dt_socket,address=8088,server=y,suspend=n
    JProfiler: -agentpath:/opt/jprofiler7/bin/linux-x64/libjprofilerti.so=port=8080,nowait
    JConsole: -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=3306 -Dcom.sun.management.jmxremote
    Print default parameters: java -XX:+PrintFlagsFinal -version
    jmap -histo <pid>
    jmap -heap <pid>
    jmap -permstat <pid>
    jmap -dump:format=b,file=/xxx.hprof <pid>
    jhat -baseline 1.hprof 2.hprof
    jstack -l <pid>
    jstat -gc <pid>
    jstat -gccapacity <pid>
    jstat -compiler <pid>
    jstat -class <pid>
    另外,有一些JVM问题定位的工具使用,可参考 http://www.raychase.net/1519

    jstack 42036 查找线程的信息
    jstack -J-d64 42036
    jmap -heap 31843 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况.
    jmap -histo 4939 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.

    更多参考资料:

    专题:Linux监控工具的展览馆 http://os.51cto.com/art/201005/200741.htm

    理解Linux系统负荷 http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html

    利用shell脚本来监控linux系统的负载与CPU占用情况 http://huangrs.blog.51cto.com/2677571/788379/

    Linux下容易被忽视的那些命令用法 http://blog.csdn.net/xhjcehust/article/details/77253127

  • 相关阅读:
    Python遇到的零碎小问题
    【bug】YYC松鼠短视频系统V2.7版本以上 增加阿里云上传后,“上传视频无法生成缩略图报错” 修改
    【补丁】YYC松鼠短视频系统补丁,增加视频点赞数据管理功能,可修改点赞数量,V2.8的功能
    【bug】修复YYC松鼠短视频系统V2.7版本bug 注册输入验证码提示邀请码,输入邀请码提示错误
    YYC松鼠短视频系统【bug】短信验证码功能bug,新注册短信用户任意填写验证码都能通过注册的严重bug修复
    修复YYC松鼠短视频系统我的收藏页面 没有返回按钮的bug
    学好C++必须要注意的十八个问题
    es节点失效,手动重置primary,迁移分区
    elasticsearch 大集群最基本,也是最重要的两个配置gc和指针压缩
    2020年一整年几乎没有更新,重新开张
  • 原文地址:https://www.cnblogs.com/huligong1234/p/4220132.html
Copyright © 2011-2022 走看看