系统管理
简要介绍
我们可以调用任务管理器,查看windows电脑的cpu状态,内存状态。运维工程师大部分情况下需要让服务器的使用情况保持在:内存:70%,cpu:90%。
判断服务器健康状态:通过监控集群,查看服务器的状态,及时进行修复调整!
查看进程:使用查看进程的工具,可以查看该进程对于服务器的内存与cpu的占用。除非进程出问题了,不然千万不要强行停止(kill -9)。千万不要删除正常的进程,比如apache,启动的核心!除非你有集群!!!!!
杀死进程:在服务器,千万不要随便使用kill命令!!!
进程的查看
ps
用来静态显示系统中进程的命令。不过这个命令有些特殊,它的部分命令的选项不能加入“-”,比如命令“ps aux”,其中“aux”是选项,但是这个选项不能加入“-”。
这是因为ps命令的部分选项需要遵守BSD操作系统的格式。所以ps命令的常用选项的组合是固定的.
ps aux #查看了系统中所有进程,使用BSD操作系统格式ps -le #查看了系统中所有进程,使用Linux标准命令格式
选项:
a:显示一个终端的所有进程,除了会话引线u:显示进程的归属用户及内存的使用情况x:显示没有控制终端的进程-l:长格式显示。显示更加详细的信息-e:显示所有进程,和-A作用一致

| 名称 | 介绍 |
|---|---|
| USER | 该进程由哪个用户产生的 |
| PID | 进程的ID号 |
| %CPU | 该进程占用CPU资源的百分比,占用越高,进程越耗费资源 |
| %MEM | 该进程占用物理内存的百分比,占用越高,进程越耗费资源 |
| VSZ | 该进程占用虚拟内存的大小,单位KB |
| RSS | 该进程占用实际物理内存的大小,单位KB |
| TTY | 该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端 |
| STAT | 进程状态。 |
| START | 该进程的启动时间 |
| TIME | 该进程占用CPU的运算时间,注意不是系统时间。 |
| COMMAND | 产生此进程的命令名,看哪些进程在运行 |
TTY:可以通过alt+F1-F7键切换不同的终端),tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端,一般是远程连接的终端,第一个远程连接占用的是pts/0终 端,第二个远程连接占用pts/1,依次增长。 ? 表示是系统进程。也就是内核生产的进程!
STAT
| 状态名称 | 状态介绍 |
|---|---|
| D | 不可被唤醒的睡眠状态,通常用于I/O情况 |
| R | 该进程正在运行 |
| S | 该进程在睡眠状态,可被唤醒(大多进程的状态) |
| T | 停止状态,可能是在后台暂停或进程在除错状态 |
| W | 内存交互状态(从2.6内核开始无效) |
| X | 死掉的进程(应该不会出现) |
| Z | 僵尸进程。进程已经终止,但是部分程序还在内存当中。 |
| < | 高优先级(以下状态在BSD格式当中出现) |
| N | 低优先级 |
| L | 被锁入内存 |
| s | 包含子进程 |
| l | 多线程(小写L) |
| + | 位于后台 |
top/pstree
htop常用命令:
top -p 15273 #使用top只查看进程id为15273的进程top k+PID #直接杀掉进程top -d 2 #每秒两次刷新进行查看管理器top -u root #只监听root用户的进程top -b -n 1 > test.txt #监听一次的数据,添加到文件中!
pstree:一般用来查看进程PID和子进程
pstree -up #显示进程的PID和所属用户
杀死进程
系统中可识别的信号很多,使用kill -l命令可以查询。
常见信号:
| 信号代号 | 信号名称 | 说明 |
|---|---|---|
| 1 | SIGHUP | 立刻关闭进程,并且重新读取配置文件后重启 |
| 2 | 程序终止信号,用于终止前台进程。相当于输出ctrl+c | |
| 8 | ||
| 9 | SIGKILL | 用来立刻关闭进程,本信号不能被堵塞忽略。 |
| 14 | 时钟定时信号,计算的是实际的时间或时钟时间 | |
| 15 | 正常结束进程的信号,kill的默认信号。但是无法正常阻止进程 | |
| 18 | 让暂停的进程恢复执行 | |
| 19 | 暂停进程,类似ctrl+z |
kill常用命令:
kill -1 112312 #重启进程kill -9 123123 #强行杀死进程killall -i sshd #交互式,强行关闭所有sshd进程pkill -9 -t tty/1 #踢出tty1用户
工作管理
后台管理有几个事项需要大家注意:
前台是指当前可以操控和执行命令的这个操作环境,后台是指工作可以自行运行,但是不能直接用ctrl+c来终止它,只能使用fg/bg来调用工作;
放入后台的命令必须可以持续运行一段时间,这样我们才能扑捉和操作这个工作。如果把ls命令放入后台执行,它很快就会执行完成,我们很难操作它。放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行。比如vi命令放入后台只能暂停,而不能执行,因为vi需要前台输入信息。top命令也不能放入后台执行,而只能放入后台暂停,因为top命令需要和前台有交互。
把命令放入后台
方法1:
命令 &
tar -zcf test.tar.gz /etc/* & #压缩etc下的文件,放到后台进行压缩
方法2:
直接ctrl+z 两者的区别在于,前者是直接放入后台运行,如果该命令能运行了会继续运行。而后者是先暂停,然后再放入后台。
后台管理命令
查看后台工作
jobs -l #展示后台程序并且显示PID
此时输入Jobs会显示 工位号——进程状态——执行的命令

将后台暂停的工作恢复到前台执行
fg 工位号
把后台暂停的工作恢复到后台执行
bg 工位号
后台命令脱离登录终端运行
我们已经知道把命令放入后台,只能在当前登录终端执行。
那如果我是远程管理的服务器,在远程终端中执行了后台命令,这时我退出登录,这个后台命令会被终止。但是我们确实需要在远程终端中执行某些后台命令,该如何执行呢?
- 第一种方法:
把需要后台执行的命令加入/etc/rc.local文件,让系统在启动时执行这个后台程序。这种方法的问题是,服务器时不能随便重启的,万一有临时后台任务,就不能执行。
- 第二种方法:
让系统在指定的时间执行某个后台命令。这样放入后台的命令与终端无关,是不依赖登录终端的。
- 第三种方法
nohup命令的作用就是让后台工作在离开操作终端时,也能够正确的在后台执行。
nohup [命令] &
系统资源查看
vmstat
vmstat 1 3 #查看监控系统资源

procs:进程信息字段:
r:等待运行的进程数,数量越大,系统越繁忙。b:不可被唤醒的进程数量,数量越大,系统月繁忙。
memory:内存信息字段:
swpd:虚拟内存的使用情况,单位KB。free:空闲的内存容量,单位KB。buff:缓冲的内存容量,单位KB。cache:缓存的内存容量,单位KB。
swap:交换分区的信息字段:
si:从磁盘中交换到内存中数据的数量,单位KB。so:从内存中交换到磁盘中数据的数量,单位KB。此两个数越大,证明数据需要经常在磁盘和内存之间交换,系统性能越差。
io:磁盘读写信息字段:
bi:从块设备读入数据的总量,单位是块。bo:写到块设备的数据的总量,单位是块。此两个数越大,代表系统的I/O越繁忙。
system:系统信息字段:
in:每秒被中断的进程次数。cs:每秒钟进行的事件切换次数。此两个数越大,代表系统与接口设备的通信非常繁忙。
CPU:CPU信息字段:
us:非内核进程消耗CPU运算时间的百分比。sy:内核进程消耗CPU运算时间的百分比。id:空闲CPU的百分比。wa:等待I/O所消耗的CPU百分比。st:被虚拟机所盗用的CPU占比。
dmesg
显示开机时内核检测信息
dmesg | gre CPU #查看CPU信息
free
查看内存的使用情况
free [-b|-k|-m|-g]
选项:
-b:以字节为单位显示-k:以KB为单位显示,默认就是以KB为单位显示-m:以MB为单位显示-g:以GB为单位显示

/proc/cpuinfo
查看cup信息

w/who
查看当前在线的用户
uptime
uptime命令的作用就是显示系统的启动时间和平均负载,也就是top命令的第一行。其实w命令也能看到这一行的数据,具体原意使用哪个命令看个人习惯。
uname
查看内核的相关信息,命令如下:
#uname [选项]uname -r #查询内核uname -a #查看更多信息
选项:
-a:查看系统所有相关信息;-r:查看内核版本;-s:查看内核名称。
判断系统位数
file /bin/ls
查看发行版本
lsb_release -a
