初次登錄 Linux 服務器馬上要做的 9 件事

在將新配置的服務器投入工作之前,請確保你知道你正在使用什麼。

當我在 Linux 上測試軟件時(這是我工作中的一個常規部分),我需要使用多臺運行 Linux 的不同架構的服務器。我整備機器,安裝所需的軟件包,運行我的測試,收集結果,並將機器返回到倉庫中,以便其他人可以使用它進行測試。

由於我經常這樣做(甚至一天多次),我初次登錄 Linux 服務器的前 10 分鐘內的工作已經成爲每天的儀式。當我初次登錄 Linux 服務器時,我會使用命令來收集我需要的信息來尋找某些東西。我將在本文中介紹我的過程,但請注意,在大多數情況下,我只給出命令名稱,所以你需要確定這些命令的具體選項,以獲得你需要的信息。閱讀命令的手冊頁是一個很好的起點。

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 存儲庫中安裝它們或切換到它們的等效新命令:

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

5、已安裝的軟件

測試軟件總是需要安裝額外的依賴包、庫等。然而,在安裝任何東西之前,我都會檢查已經安裝了什麼(包括是什麼版本),以及配置了哪些存儲庫,這樣我就知道軟件來自哪裏,並可以調試任何軟件包安裝問題。

使用下面的命令來確定安裝了什麼軟件:

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 存儲庫中安裝它或使用等效的新命令:

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 命令。


via: https://opensource.com/article/20/12/linux-server

作者:Gaurav Kamathe 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章