工作中常用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

工作中常用Linux命令--服务器运维的更多相关文章

  1. 工作中常用Linux命令

    建立软链接  ln -s      例:ln -s b a 解释:把文件夹a和文件夹b关联起来,访问文件夹a,实际访问的是问价夹b 删除软连接  rm -rf a  直接删掉a文件夹跟a和b的软连接. ...

  2. 工作中常用Lixu命令学习笔记

    对于Linux,我是菜鸟,也是在工作中了才开始慢慢接触,用Linux的人都我都会觉得屌屌的,现在把工作中常用的一些Linux命令记录一下,供以后学习和参考. cd 这可能是我觉得Linux最简单的一个 ...

  3. Linux 云服务器运维(操作及命令)

    1. 什么是linux服务器load average? Load是用来度量服务器工作量的大小,即计算机cpu任务执行队列的长度,值越大,表明包括正在运行和待运行的进程数越多. 2. 如何查看linux ...

  4. 开发中常用linux命令

    1.创建目录mkdir 创建目录命令,常用的参数-p,递归创建目录 [root@web01 ~]# mkdir /data [root@web01 ~]# mkdir /data/a/b mkdir: ...

  5. git总结一、工作中常用基础命令

    首先来了解两个概念: 工作区:比如你的项目目录 暂存区:git和其他版本控制系统的不同之处就是有这个暂存区的概念. .git不是工作区,而是git 版本库,在版本库中存放着很多东西,比如暂存区(sta ...

  6. SecureCRT中常用linux命令 -《转载》

    常用命令: 一.ls 只列出文件名 (相当于dir,dir也可以使用) -A:列出所有文件,包含隐藏文 件. -l:列表形式,包含文件的绝大部分属性. -R:递归显示. --help:此命令的帮助. ...

  7. 深度学习之常用linux命令总结

    深度学习中常用linux命令总结 1.创建文件夹 mkdir 文件名2.删除文件 rm -d 目录名 #删除一个空目录 rmdir 目录名 #删除一个空目录 rm -r 目录名 #删除一个非空目录 r ...

  8. 工作中常用的Linux命令:crontab命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...

  9. 转摘Linux命令工作中常用总结

    Linux命令工作中常用总结   1. 搜索 在vi和vim中如果打开一个很大的文件,不容易找到对应的内容,可以使用自带的搜索关键字进行搜索定位: 在vi和vim界面中输入:"/" ...

随机推荐

  1. Python 异步编程笔记:asyncio

    个人笔记,不保证正确. 虽然说看到很多人不看好 asyncio,但是这个东西还是必须学的.. 基于协程的异步,在很多语言中都有,学会了 Python 的,就一通百通. 一.生成器 generator ...

  2. Week2 Teamework from Z.XML 软件分析与用户需求调查(四)Bing桌面及助手的现状与发展

    一.Bing搜索的相关背景 第一,必应搜索前几年的发展重点在于欧美市场,并且取得了一定的成效:根据 Hitwise 的统计数据,Bing 在 2011年3 月份市场占有率突破了 30% 大关,达到 3 ...

  3. Camera2与TextureView使用

    package com.intsig.bcrsdk.demo.Activity; import android.annotation.TargetApi; import android.app.Act ...

  4. SDUST OJ Problem G 动态的字符串排序

    Description 把字符串按照ASCII码序的从小到大排列出来. 串的ASCII码序遵循如下递归定义: 1 两串的前n-1个字符相同,第n个字符ASCII码序小的排在前面:2 只有两串的字符完全 ...

  5. 转---详细的Android开发环境搭建教程

    五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程 引言   在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立A ...

  6. C - 红与黑

    C - 红与黑 Time Limit: 1000/1000MS (C++/Others) Memory Limit: 65536/65536KB (C++/Others) Problem Descri ...

  7. 【python】 json.dumps() json.dump()的区别

    以前写的很简单,只有几句话,最近发现本文是本博客阅读量最大的一篇文章,觉得这样有种把人骗进来的感觉,于是又细化了一些.如果还有不好的地方,欢迎指出. 首先说明基本功能: dumps是将dict转化成s ...

  8. 微服务日志监控与查询logstash + kafka + elasticsearch

    使用 logstash + kafka + elasticsearch 实现日志监控 https://blog.csdn.net/github_39939645/article/details/788 ...

  9. Linux 常用命令记录(学习笔记)

    不同机器间文件传输(转自:http://www.zhimengzhe.com/mac/323324.html) scp是什么? scp是secure copy的简写,用于在Linux下进行远程拷贝文件 ...

  10. BZOJ4415 SHOI2013发牌(线段树)

    似乎是noip2017d2t3的一个部分分.用splay的话当然非常裸,但说不定会被卡常.可以发现序列中数的(环上)相对位置是不变的,考虑造一棵权值线段树维护权值区间内还有多少个数留在序列中,每次在线 ...