您的位置:首页 > 运维架构 > Linux

工作中常用的Linux命令

2017-02-17 16:41 489 查看
工作中,常用的命令,进行总结下。

场景1:大张负责线上一个服务,使用java语言开发的。有一天,他收到报警,大概意思就是服务不能用,这个时候,老板让他查下是什么原因?

下面是大张的处理过程?

登录到这个机器,看下java进程

ps -aux | grep -v ‘grep’ | grep java –color=auto

经过分析,

场景1:发现没有这个服务的java进程,大张给老板说,这个服务停了。这个事情算是搞定了。

场景2:发现这个服务的进程是存在的,大张执行下面的命令,看下这个服务的监听的端口,

netstat -lnpt

大张看到了这个监听的端口是有的,但是看不到哪个是进程占用的,因为大张的权限问题,大张切换成root角色权限的用户,假设叫niubi

sudo -u niubi -i

大张看到了占用这个端口的进程,lsof -i:端口,然后大张想看下监听这个端口的进程和刚才用ps -ef | grep -v ‘grep’ | grep java 查到的进程是啥关系,然后大张使用了如下命令,

pstree

但是,大张看不出什么,大张又执行了pstree -Aup

这个时候大张发现,这两个进程的父子关系,然后就断定,进程没问题,端口没问题,那么怎么办呢?其实,本应该去看应用的日志的,哎,还是去看应用日志吧。
看应用日志

日志文件都存放到一个指定目录,假设为/var/apps/log

这个目录下面有很多的日志,大张,先执行如下命令:

ls -ls

这么多日志,怎么看,大张找到了当天的日志,假设是app.log.2015-09-12

大张使用命令

less -MN app.log.2015-09-12

然后输入error,没啥收获,然后大张执行命令:

cat app.log.2015-09-12 | grep Exception –color=auto

发现很多异常,大张想看下有多少,然后执行了命令

cat app.log.2015-09-12 | grep Exception | wc -l

(或者grep Exception app.log.2015-09-12)

哇塞,还挺多,问题很严重!

不过从日志中,经过分析可能是IO方面的问题,大张决定看下机器的负载情况。
看机器负载

大张执行了命令top

大张看了几个cpu,和内存使用情况,然后看了眼有无僵尸(zombie)进程

,应该没啥问题,然后大张又看了下磁盘使用情况:

df -hl

也没啥问题,然后看下当前目录的总量占用情况,执行命令:du -sh ./

也没啥问题,执行du -sh *命令,看了每个日志文件的大小,也没啥,

大张实在是解决不了问题了,抓狂!!!!!
场景2:

有一天,大张启动一个需要打开很多文件的程序,总是打不开文件,凭着经验,大张想应该是用命令看下:ulimit -a

发现,原来系统的文件打开数量限制是1024,而大张想看下当前打开的有多少,执行命令lsof | wc -l

然后大张调整了ulimit大小,就OK了。

后来,大张学习了以下命令:

物理cpu的个数如下所示:

cat /proc/cpuinfo | grep ‘physical id’ | sort | uniq | wc -l

每个物理CPU中core的个数(即核数),如下:

cat /proc/cpuinfo| grep ‘cpu cores’ | uniq

查看内存使用情况:

free -m

查看硬盘使用情况:

fdisk -l

df -h

查看I/O性能:

iostat

查看负载

uptime

查看系统内核

uname -a

查看使用的Linux发行发版的相关信息:

lsb_release -a

查询PCI设置

lspci

查询网卡型号

lspci | grep Ether

查看系统路由表

route -n

或者通过如下命令:

netstat -r

追踪网路数据包的路径

traceroute www.163.com

场景3:大张的公司的机器上的命令有很多都弄成别名了,大张想看下,

然后大张执行如下命令:

alias
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: