前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单的linux系统配置故障定位与排除

简单的linux系统配置故障定位与排除

原创
作者头像
Jayjiao
发布2018-08-29 14:40:29
1.4K0
发布2018-08-29 14:40:29
举报

运维有风险,操作需谨慎

本文旨在通过一些常用命令的用法示例,让有一定linux基础的开发同学能对系统进行简单配置,也能够上服务器定位或者解决一些简单基础性的问题,做出初步故障排除,或者为运维同学描述故障的表现提供帮助。

一般性的问题无非cpu占用高,内存满,磁盘满,目录或文件无权限,防火墙设置,所以上机器之后一般从这几个方面进行排查,这样能定位和解决大部分表现为接口不能访问,变慢,服务突然或周期性中断的问题,从而及时排除或定位故障,提高服务可用率,减轻运维同学的压力。

1. top

查看本机运行的基本信息,cpu,内存,进程,负载等,类似windows的资源管理器

2. pwd

查看当前目录,用于获取完整路径

3. ls -lh

列出当前目录的文件,并且将文件的大小按照容易读懂的形式表现出来

不加 h

加 h

4. ps -ef

查看当前所有的进程信息如cpu,内存,一般会加上grep 组合成查找进程的形式例如 ps -ef | grep httpd

5. free -m

查看内存信息,内存的大小按照MB的形式展示,也可以-g,按照GB的形式这展示

6. tail -f

以流的形式查看文件,多用于查看日志,例如tail -f xx.log,可以实时的查看日志的最新内容

7. ln -s

软连接创建,类似于windows的快捷方式,当需要在某个路径创建一个已经存在其它地方的文件或者文件夹时使用,例如在不改变配置文件的情况下,将日志目录移动到更大的硬盘,减少对系统盘的存储压力,在/tmp/目录下建立/data/logs目录的映射 logs

8. rm

删除文件,加上 -f强制删除不会进行二次确认(谨慎操作),-r删除文件夹,

删除链接为目录时不要加后面的”/xx”,否则会删除原有文件夹中的内容, 出现提示:rm: remove symbolic link ‘xxx’?,才是删除软链接

9. history

查看命令的历史,如果命令太多可以加上| less”,可以用键盘上的翻页按钮进行翻页操作,less对其它列输出命令同样奏效,例如ls -lh | less ,按Q键退出

10. kill

杀死进程,用于结束一个进程 kill -9 强制结束

11. ifconfig

查看本机ip地址,会罗列出本机的网卡,并显示该网卡的详细

12. tcpdump

用于抓取数据包,一般用于查看本机从网络上接收或者发出的信息,比如在调试接口时常用到,基本形式为截获主机hostname发送的所有数据

tcpdump -i eth0 src host hostname

监视所有送到主机hostname的数据包

tcpdump -i eth0 dst host hostname

监视指定主机和端口的数据包

如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令

tcpdump tcp port 23 and host 210.27.48.1

对本机的udp 123 端口进行监视 123 为ntp的服务端口

tcpdump udp port 123

更加详细使用参考

https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

13. crontab

定时任务系统,用于需要按照某种时间规则重复执行程序时使用

例如:

在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。 1 0 * * * /root/bin/backup.sh

详细操作参考

https://www.cnblogs.com/intval/p/5763929.html

14. yum install

centos下安装软件,傻瓜式安装常用软件,在不熟悉编译安装之前是个很好的安装软件的方法

例如需要安装niginx:yum install nginx

15. df

查看磁盘大小和使用情况,加上-h 获得更好的容量大小展示,一般用于查看是不是因为磁盘满了而导致的系统不可用等情况,日志占满磁盘会导致服务不可用,通过这个问题就可以快速定位出

16. du

查看具体目录的磁盘占用信息,用ls查看,目录统一显示为4KB,无法查看真实的磁盘占用情况

-h 友好显示 -d控制层级 1表示只看当前目录 数字越大层级越深,列表中的最后一个表示当前目录总共占用的大小,如下图中的最后一行 2.0G 表示当前目录总共大小为2G。

这个命令一般用于查找那些大容量的文件夹,通过多次组合(如配合df 查看磁盘占用->du查看目录占用->ls查看具体文件大小),类似windows的先查看那个盘占用严重,进入盘后查看哪个文件夹比较大,再进入文件夹看哪个文件比较大,来定位大文件的所在,整理磁盘空间

深层级演示,这里2表示如果是目录,则进入查看里面一层的文件或目录的详细占用信息

17. cp

复制文件,加上-r 复制文件夹

cp from to

cp -r fromD toD

18. mv

剪切文件

mv from to

19. date

查看系统时间

加上-s 为修改时间 date -s 2018-08-08 10:18:00

20. chmod

修改文件或加上-R修改文件夹权限, 用数字表示为:r(读)=4,w(写)=2,x(执行)=1 因此rwx=4+2+1=7

一般用法

chmod 755 abc:赋予abc权限rwxr-xr-x

chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限

chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限

chmod a+r abc:给所有用户添加读的权限

具体参考

http://man.linuxde.net/chmod

21. chown

修改目录或文件的所有者信息,例如把日志目录的权限给nginx的进程的所有者www,从而解决没权限无法写入日志的问题

chown www(所有者):www(用户组) logs

详情参考

https://www.cnblogs.com/toSeeMyDream/p/6405493.html

22. tar

压缩解压缩 tar,gz格式的压缩包

解:

tar -xvf 解压缩

格式为:

tar -xvf file.tar 解压file.tar当前文件夹

tar -xvf file.tar -C /tmp/xxx 解压file.tar指定的文件夹

压:

tar -jcvf 压缩成bz2属性

tar -zcvf 压缩成 gzip属性

格式为:

tar -cvf 压缩包名 被压缩的文件或文件夹

例如 tar -cvf jpg.tar *.jpg 将目录里所有jpg文件打包成tar.jpg

详解

https://www.cnblogs.com/manong--/p/8012324.html

23. zip

解或者压缩zip格式

压:

zip -r html.zip html 把html打成zip包

解:

unzip html.zip 解压zip包

24. rpm

centos下安装删除rpm包,一般用于服务器不能通过yum安装软件时,直接下载软件包上传到服务器进行安装

rpm -ivh xxx 安装

rpm -e xxx 卸载

详情

https://www.cnblogs.com/liaojie970/p/6138075.html

25. netstat

查看本机网络状况,一般用于查看端口占用,或者正在使用网络的进程

netstat -apn 查看所有

netstat -apn | grep httpd 搜索httpd进程

netstat -apn | grep 80 查看80端口的占用

26. iptables

linux的防火墙,通常网络不通是由iptables的配置造成的,

典型的场景,本机接口客户端不能访问,或者某些客户端不能访问,

或者本机ip为192.168.1.88,在本机通过127.0.0.1(回送地址,指本地机)能够访问自身端口,而其它机器无法通过192.168.1.88访问该机器,可能的原有如下

1. ip黑名单或者白名单造成

2. 端口被限制访问

代码语言:javascript
复制
      iptables -A INPUT -p tcp --dport 22 -j ACCEPT 开启22端口的进权限
代码语言:javascript
复制
      iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT 开启22端口的出权限
代码语言:javascript
复制
iptables -A INPUT -p tcp -j DROP 关闭22端口的进权限,本机22端口无法被其它机器访问
代码语言:javascript
复制
      iptables为系统的重要组件,修改和配置时需要格外小心,详细设置可参考
代码语言:javascript
复制
      https://www.cnblogs.com/zongfa/p/7967935.html

27. 查看系统配置信息的一系列命令

uname -a 查看发行版,内核版本,系统是32还是64位

cat /proc/cpuinfo 显示CPU info的信息

cat /proc/interrupts 显示中断

cat /proc/meminfo 校验内存使用

cat /proc/swaps 显示哪些swap被使用

cat /proc/version 显示内核的版本

cat /proc/net/dev 显示网络适配器及统计

cat /proc/mounts 显示已加载的文件系统

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档