如何查看服务器状态?掌握这些命令就够了!
如何查看服务器状态?掌握这些命令就够了!
在管理和维护服务器时,掌握一些基本的查看命令是至关重要的,这些命令可以帮助管理员了解服务器的运行状态、硬件资源使用情况以及网络连接状况等重要信息,下面将详细介绍几种常用的服务器查看命令及其功能。
1. top
实时显示系统进程信息
功能:显示当前正在运行的所有进程及其CPU和内存占用情况。
使用方法:直接输入
top
后回车即可进入界面;按q退出。
示例输出:
top 15:23:45 up 10 days, 3:45, 2 users, load average: 0.12, 0.15, 0.10
Tasks: 189 total, 1 running, 188 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.6 us, 0.3 sy, 0.0 ni, 99.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 4096000 total, 1234560 free, 2861440 used, 123456 buffers
KiB Swap: 2048000 total, 2048000 free, 0 used. 2861440 avail Mem
...
2. free
查看内存使用情况
功能:提供关于物理内存和交换空间使用情况的信息。
使用方法:执行
free
或
free -h
(以更友好的方式显示)。
示例输出:
total used free shared buff/cache available
Mem: 4096000 1234560 2861440 0 23456 2861440
Swap: 2048000 0 2048000
3. df
检查磁盘空间使用情况
功能:列出文件系统的磁盘空间使用情况。
使用方法:简单输入
df
或者加上特定选项如
-h
来获得人类可读格式的数据。
示例输出:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 4096000 1234560 2861440 30% /
tmpfs 204800 0 204800 0% /dev/shm
...
4. du
估算文件或目录的大小
功能:用于计算指定文件或目录所占用的磁盘空间。
使用方法:
du [options] [filenames]
,常用选项包括
-sh
(归纳大小)和
--max-depth=N
(限制递归深度)。
示例输出:
123456 /home/user/documents
5. ps
报告当前系统进程状态
功能:显示当前系统中的活动进程。
使用方法:
ps aux
可以列出所有用户下的详细进程信息;
ps -ef
则按照完整格式显示。
示例输出:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 123456 7890 ? Ss 15:23 0:01 /sbin/init
...
6. netstat
网络统计工具
功能:显示网络连接、路由表、接口统计数据等。
使用方法:
netstat -tuln
用于查看监听端口;
netstat -anp | grep <port_number>
可用于查找特定端口的使用情况。
示例输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
...
7. ifconfig / ip
网络配置与诊断
功能:这两个命令都可以用于查看和修改网络接口设置。ifconfig较为传统,而ip则是现代Linux系统中推荐使用的工具。
使用方法:
ifconfig
或
ip addr show
查看所有接口的状态;
ip route show
查看路由表。
示例输出(通过ip):
1: lo: <LOOPBACK, mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
...
相关问题与解答
Q1: 如何快速找到消耗最多内存的进程?
A1: 你可以使用以下组合命令来找到消耗最多内存的进程:
ps aux --sort=-%mem | head -n 10
这条命令会根据内存使用率从高到低排序前十个进程,并显示它们的具体信息,其中
--sort=-%mem
表示按照内存使用量降序排列。
Q2: 如果我想监控某个特定端口是否被占用,应该怎么做?
A2: 你可以使用
netstat
或
ss
(socket statistics)命令结合grep来检查特定端口的状态,要检查端口80是否被占用,可以运行:
sudo netstat -tuln | grep ':80'
或者使用
ss
命令:
sudo ss -tuln | grep ':80'
这将列出所有监听在该端口上的服务及其相关信息,如果没有输出结果,则意味着该端口未被任何程序占用。