閱讀339 返回首頁    go 阿裏雲 go 技術社區[雲棲]


連接到 Linux 服務器時首先要運行的 5 個命令

連上 Linux 服務器的第一分鍾

這些命令對於有經驗的軟件工程師來說都非常熟悉,但我意識到對於一個剛開始接觸 Linux 係統的初學者來說,例如我在 Holberton 學校任教的學生,卻並非如此。這也是我為什麼決定分享當我連上 Linux 服務器首先要運行的前 5 個命令的原因。


  1. w
  2. history
  3. top
  4. df
  5. netstat

這 5 個命令在任何一個 Linux 發行版中都有,因此不需要額外的安裝步驟你就可以直接使用它們。

w:


  1. [ubuntu@ip-172-31-48-251 ~]$ w
  2. 23:40:25 up 273 days, 20:52, 2 users, load average: 0.33, 0.14, 0.12
  3. USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
  4. ubuntu pts/0 104-7-14-91.ligh 23:39 0.00s 0.02s 0.00s w
  5. root pts/1 104-7-14-91.ligh 23:40 5.00s 0.01s 0.03s sshd: root [priv]
  6. [ubuntu@ip-172-31-48-251 ~]$

這裏列出了很多有用的信息。首先,你可以看到服務器運行時間 uptime,也就是服務器持續運行的時間。然後你可以看到有哪些用戶連接到了服務器,當你要確認你沒有影響你同事工作的時候這非常有用。最後 load average 能很好的向你展示服務器的健康狀態。

history


  1. [ubuntu@ip-172-31-48-251 ~]$ history
  2. 1 cd /var/app/current/log/
  3. 2 ls -al
  4. 3 tail -n 3000 production.log
  5. 4 service apache2 status
  6. 5 cat ../../app/services/discourse_service.rb

history 能告訴你當前連接的用戶之前運行了什麼命令。你可以看到很多關於這台機器之前在執行什麼類型的任務、可能出現了什麼錯誤、可以從哪裏開始調試工作等信息。

top


  1. top - 23:47:54 up 273 days, 21:00, 2 users, load average: 0.02, 0.07, 0.10
  2. Tasks: 79 total, 2 running, 77 sleeping, 0 stopped, 0 zombie
  3. Cpu(s): 1.0%us, 0.0%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.3%st
  4. Mem: 3842624k total, 3128036k used, 714588k free, 148860k buffers
  5. Swap: 0k total, 0k used, 0k free, 1052320k cached
  6. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  7. 21095 root 20 0 513m 21m 4980 S 1.0 0.6 1237:05 python
  8. 1380 healthd 20 0 669m 36m 5712 S 0.3 1.0 265:43.82 ruby
  9. 19703 dd-agent 20 0 142m 25m 4912 S 0.3 0.7 11:32.32 python
  10. 1 root 20 0 19596 1628 1284 S 0.0 0.0 0:10.64 init
  11. 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
  12. 3 root 20 0 0 0 0 S 0.0 0.0 27:31.42 ksoftirqd/0
  13. 4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0
  14. 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
  15. 7 root 20 0 0 0 0 S 0.0 0.0 42:51.60 rcu_sched
  16. 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh

你想知道的下一個信息:服務器當前在執行什麼工作。使用 top 命令你可以看到所有正在執行的進程,然後可以按照 CPU、內存使用進行排序,並找到占用資源的進程。

df


  1. [ubuntu@ip-172-31-48-251 ~]$ df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/xvda1 7.8G 4.5G 3.3G 58% /
  4. devtmpfs 1.9G 12K 1.9G 1% /dev
  5. tmpfs 1.9G 0 1.9G 0% /dev/shm

你服務器正常工作需要的下一個重要資源就是磁盤空間。磁盤空間消耗完是非常典型的問題。

netstat


  1. [ubuntu@ip-172-31-48-251 ec2-user]# netstat -lp
  2. Active Internet connections (only servers)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  4. tcp 0 0 *:http *:* LISTEN 1637/nginx
  5. tcp 0 0 *:ssh *:* LISTEN 1209/sshd
  6. tcp 0 0 localhost:smtp *:* LISTEN 1241/sendmail
  7. tcp 0 0 localhost:17123 *:* LISTEN 19703/python
  8. tcp 0 0 localhost:22221 *:* LISTEN 1380/puma 2.11.1 (t
  9. tcp 0 0 *:4242 *:* LISTEN 18904/jsvc.exec
  10. tcp 0 0 *:ssh *:* LISTEN 1209/sshd

計算機已成為我們世界的重要一部分,因為它們有通過網絡進行相互交流的能力。知道你的服務器正在監聽什麼端口、IP地址是什麼、以及哪些進程在使用它們,這對於你來說都非常重要。

原文發布時間為:2017-04-07

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-23 15:03:22

  上一篇:go  如何在 Linux 中列出通過 RPM 或者 DEB 包安裝的文件
  下一篇:go  用 Winetricks 配置 WINE