探索linux服务器,就好比我们去了解一个房子。房子有它的地址(IP),有它的户口归属,群组,居委街道,省市区等(vpc,网关,安全组,集群等等),房子户型会涉及到不同的对外“接口port”(人走门,网络走网线,自来水走水管,用电走电线),会有不同的小房间(目录)和物件(各类文件), 房间发生着很多事件(进程),这些事件有些会涉及用到端口(例如家里电视开着,电视信号是通过电视端口进入;电源是通过电路传输),我们会反反复复的从一个房间(目录)走到(cd)另一个房间(目录),会需要知道房间还有多少空间(df), 会需要知道某些家具占了多大面积(du),方方面面,理解了这些,linux很多问题都能迎刃而解。
为什么需要?
一次常规的项目发布(前端小同学轻松地点击了流水线发布按钮),但这次有点不顺利,发布流程上显示是成功的,但访问服务时却发现访问不了。这对于很多前端同学来说,如同触碰了一个黑盒,一旦里面出现问题,就只能两眼一摸黑,因为前段开发一般都不会依赖linux,mac或windows系统都会是一个不错的前端开发工程师的系统选择。这个时候如果有一定的Linux常规运维技巧,他就能够进入这个黑盒,一探究竟。
探索"黑盒"
-
登录黑盒(服务器)
ssh {用户名}@{服务IP}
通常这里省略了端口22,如果不是22就需要指明 -p {端口号} -
IP地址和Port端口
黑盒是我们的服务器,服务器就好比是我们的某个房子,我们要找到这个房子,就需要房子的地址(即IP地址),当需要进入这个房子的途径一般都是走“门”(即服务器的port端口),而linux服务器的这个“门”就是通过ssh从端口22进入。 -
了解房子面积使用情况
-
我们大致知道房子的面积使用率情况了。df -h
由 df 命令显示出的各列信息的含义分别是:
- Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
- Size:此列表示文件系统的总大小,默认以 KB 为单位;
- Used:表示用掉的硬盘空间大小;
- Available:表示剩余的硬盘空间大小;
- Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
- Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置。
-
可能房子很大,时刻告诉自己在哪里(所处系统路径)pwd
-
把所在房间(目录)能看到的内容展示出来ls
-
可以指定某个“家具”,看看它占了多少面积du
-
就可以只一层,而不要一次性查看所有层的解析(有个箱子,箱子里面每个东西的占地面积就不展示)du -h --max-depth=1
-
进入到某个房间cd {目录名}
-
刚才我们了解了住宅里面面积(服务器的存储)使用情况,也许接下来我们就开始想了解这个家庭的用电(内存)用水(cpu)的情况,以及有哪些家庭电器(应用服务)在使用,家电(应用服务)是否存在问题等等。
-
了解用电(内存)用水(cpu)的情况
用于查看进程的CPU和内存使用情况;当然也会报告内存总量,以及内存使用情况,所以可用来监控物理内存的使用情况top
系统中最简单和最常用的内存free
查看内存信息cat /proc/meminfo
看cpu详细信息dmidecode | grep 'Processor Information'
-
了解进程(房子里发生的事)
查看所有进程ps -ef
杀进程kill -9 ProcessId
-
了解网络(房子的通风采光口),总不能让别人随便开“窗”吧。
查看所有网络接口的属性ifconfig
查看防火墙设置iptables -L
查看路由表route -n
查看所有监听端口netstat -lntp
查看所有已经建立的连接netstat -antp
查看网络统计信息netstat -s
-
了解用户(房间里的人)
查看活动用户w
查看指定用户信息id <用户名>
查看用户登录日志last
查看系统所有用户cut -d: -f1 /etc/passwd
查看系统所有组cut -d: -f1 /etc/group
查看当前用户的计划任务crontab -l
-
查看所有安装的软件包(房子购买了哪些服务依赖)
rpm -qa
-
了解网卡信息。这就涉及到房子户籍的登记了。毕竟你给人家说你得地址,总得有个归属吧,所以这就有点类似房子是属于哪个小区,哪个居委,哪个街道等等之类的。
dmesg | grep -i eth
-
了解机器名称(商品房的品牌)
dmidecode | grep "Product Name"
-
了解系统(房产局查房产信息吧)
# 查看内核/操作系统/CPU信息uname -a
# 查看操作系统版本head -n 1 /etc/issue
# 查看CPU信息cat /proc/cpuinfo
# 查看计算机名hostname
# 列出所有PCI设备lspci -tv
# 列出所有USB设备lsusb -tv
# 列出加载的内核模块lsmod
# 查看环境变量env
-
了解磁盘和分区
# 查看挂接的分区状态mount | column -t
# 查看所有分区fdisk -l
# 查看所有交换分区swapon -s
# 查看磁盘参数(仅适用于IDE设备)hdparm -i /dev/hda
# 查看启动时IDE设备检测状况dmesg | grep IDE
寻找问题
- 找出服务部署路径
, 找到相关路径地址ps -ef | grep {关键字}
- 进入对应路径
cd {路径}
- 找出对应部署内容是否正确
ls
- 如果内容是期望的,则应该确认下
- 内存是否足够
free
- cpu是否爆了?
top
- 端口是否被占用
netstat -lntp
- 内存是否足够
结语
有了一定的linux使用技巧,你就能想使用windows一样轻松掌控系统了。然后你会发现,其实Linux有着特别的魅力,它的稳定性是windows难以比拟的。当然最关键是这会让前端开发更加深入部署,探究本质,发现问题的出处。
前端开发需要日常linux运维技巧!!!
前端开发需要日常linux运维技巧!!!
前端开发需要日常linux运维技巧!!!
0 条评论