探索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)的情况

    • top 用于查看进程的CPU和内存使用情况;当然也会报告内存总量,以及内存使用情况,所以可用来监控物理内存的使用情况
    • free 系统中最简单和最常用的内存
    • cat /proc/meminfo 查看内存信息
    • dmidecode | grep 'Processor Information' 看cpu详细信息
  • 了解进程(房子里发生的事)

    • 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"

  • 了解系统(房产局查房产信息吧)

    • uname -a # 查看内核/操作系统/CPU信息
    • head -n 1 /etc/issue # 查看操作系统版本
    • cat /proc/cpuinfo # 查看CPU信息
    • hostname # 查看计算机名
    • lspci -tv # 列出所有PCI设备
    • lsusb -tv # 列出所有USB设备
    • lsmod # 列出加载的内核模块
    • env # 查看环境变量
  • 了解磁盘和分区

    • mount | column -t # 查看挂接的分区状态
    • fdisk -l # 查看所有分区
    • swapon -s # 查看所有交换分区
    • hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
    • dmesg | grep IDE # 查看启动时IDE设备检测状况

寻找问题

  • 找出服务部署路径 ps -ef | grep {关键字}, 找到相关路径地址
  • 进入对应路径 cd {路径}
  • 找出对应部署内容是否正确 ls
  • 如果内容是期望的,则应该确认下
    • 内存是否足够 free
    • cpu是否爆了?top
    • 端口是否被占用 netstat -lntp

结语

有了一定的linux使用技巧,你就能想使用windows一样轻松掌控系统了。然后你会发现,其实Linux有着特别的魅力,它的稳定性是windows难以比拟的。当然最关键是这会让前端开发更加深入部署,探究本质,发现问题的出处。

前端开发需要日常linux运维技巧!!!
前端开发需要日常linux运维技巧!!!
前端开发需要日常linux运维技巧!!!

分类: 互联网技术

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注

粤ICP备2023023347号-1
error: Content is protected !!