在Linux服务器上前10分钟要做的9件事

在将新配置的服务器投入工作之前,请确保你知道你正在使用什么。

当我在Linux上测试软件(这是我工作的一个常规部分)时,我需要使用多个运行Linux的具有各种体系结构的服务器。我调配机器,安装所需的软件包,运行测试,收集结果,并将机器返回到池中,以便其他人可以使用它进行测试。

由于我经常这样做(甚至一天多次),我在Linux服务器上的头10分钟已经成为每天的例行公事。当我第一次登录到Linux服务器时,我会使用命令来收集我需要的信息。在本文中,我将详细介绍我的过程,但请注意,在大多数情况下,我只给出命令名,因此您需要标识这些命令的特定标志以获取所需的信息。阅读命令的手册页是一个很好的起点。

翻译自:https://opensource.com/article/20/12/linux-server

1.第一次接触

一旦我登录到服务器,我要做的第一件事就是检查它是否具有运行测试所需的操作系统、内核和硬件体系结构。我经常检查服务器已经运行了多长时间。虽然这对于测试系统来说无关紧要,因为它将被多次重新启动,但我仍然觉得这些信息很有用。

使用以下命令获取此信息。我主要使用Red Hat Linux进行测试,因此如果您使用的是另一个Linux发行版,请在文件名中使用 *-release 而不是 redhat-release

cat /etc/redhat-release
uname -a
hostnamectl
uptime

2.系统还有其他人吗?

一旦我知道机器满足了我的测试需求,我就需要确保没有其他人在运行自己的测试的同时登录到系统中。尽管这不太可能,但考虑到供应系统会为我处理这些问题,偶尔检查一下还是不错的,尤其是当我第一次登录服务器时。我还检查是否有其他用户(root用户除外)可以访问系统。

使用以下命令查找此信息。最后一个命令在/etc/passwd文件中查找具有shell访问权限的用户;它跳过文件中没有shell访问权限或shell设置为nologin的其他服务:

who
who -Hu
grep sh$ /etc/passwd

3.物理机还是虚拟机

现在我知道我自己拥有这台机器,我需要确定它是物理机还是虚拟机(VM)。如果我自己调配机器,我可以肯定我得到了我想要的东西。但是,如果您正在使用未配置的计算机,则应检查该计算机是物理的还是虚拟的。

使用以下命令标识此信息。如果是物理系统,您将看到供应商的名称(如HP、IBM等)以及服务器的品牌和型号;而在虚拟机中,您应该看到KVM、VirtualBox等,具体取决于创建虚拟机所使用的虚拟化软件:

dmidecode -s system-manufacturer
dmidecode -s system-product-name
lshw -c system | grep product | head -1
cat /sys/class/dmi/id/product_name
cat /sys/class/dmi/id/sys_vendor

4.硬件

因为我经常测试连接到Linux机器的硬件,所以我通常使用物理服务器,而不是虚拟机。在物理机器上,我的下一步是确定服务器的硬件功能,例如,运行什么类型的CPU,它有多少个内核,启用了哪些标志,以及有多少内存可用于运行测试。如果我正在运行网络测试,我会检查连接到服务器的以太网或其他网络设备的类型和容量。

使用以下命令显示连接到Linux服务器的硬件。某些命令在较新的操作系统版本中可能会被弃用,但您仍然可以从yum repos安装它们,或切换到其等效的新命令:

lscpu or cat /proc/cpuinfo
lsmem or cat /proc/meminfo
ifconfig -a
ethtool <devname>
lshw
lspci
dmidecode

5.已安装的软件

测试软件总是需要安装额外的依赖软件包、库等。但是,在安装任何软件包之前,我会检查已经安装的软件包(包括它的版本),以及配置了哪些repos,这样我就知道了软件的来源,并且可以调试任何软件包安装问题。

使用以下命令确定安装了什么软件:

rpm -qa
rpm -qa | grep <pkgname>
rpm -qi <pkgname>
yum repolist
yum repoinfo
yum install <pkgname>
ls -l /etc/yum.repos.d/

6.运行的进程和服务

一旦我检查了安装的软件,很自然就会检查系统上运行的进程。在系统上运行性能测试时,这一点至关重要如果正在运行的进程、守护进程、测试软件等占用了大部分CPU/RAM,那么在运行测试之前停止该进程是有意义的。这还检查测试所需的进程或守护进程是否已启动并正在运行。例如,如果测试需要运行httpd,那么即使安装了包,启动守护程序的服务也可能没有运行。

使用以下命令标识系统上正在运行的进程和已启用的服务:

pstree -pa 1
ps -ef
ps auxf
systemctl

7.网络连接

今天的机器高度联网,它们需要与网络上的其他机器或服务进行通信。我确定服务器上哪些端口是打开的,是否有从网络到测试机器的任何连接,是否启用了防火墙,如果启用了防火墙,它是否阻止了任何端口,以及机器与哪些DNS服务器通信。

使用以下命令识别与网络服务相关的信息。如果不喜欢的命令不可用,请从yum repo安装该命令或使用等效的较新命令:

netstat -tulpn
netstat -anp
lsof -i
ss
iptables -L -n
cat /etc/resolv.conf

8.内核

在进行系统测试时,我发现了解与内核相关的信息很有帮助,比如内核版本和加载了哪些内核模块。我还列出了所有可调的内核参数以及它们的设置,并检查了在引导正在运行的内核时使用的选项。

使用以下命令标识此信息:

uname -r
cat /proc/cmdline
lsmod
modinfo <module>
sysctl -a
cat /boot/grub2/grub.cfg

9.日志

到现在为止,我对服务器有了一个很好的了解,包括安装了什么软件以及运行了什么进程。另一件我无法逃避的事情是日志文件-我需要知道在哪里检查不断更新的信息。

使用以下命令查看系统日志

dmesg
tail -f /var/log/messages
journalctl

接下来的步骤

虽然命令和实用程序将发生变化,但它们显示的基本信息或多或少保持不变。在关注要掌握的命令之前,您需要对要查找的信息及其所属类别有一个高级视图。

由于Linux将大部分信息保存在文件中,这些命令基本上从文件中读取信息,并以一种易于理解的方式呈现它们。下一步是确定每个命令用于获取要显示的信息的文件。查找该信息的提示是strace命令。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值