系统管理工具

系统管理工具

Linux系统状态的查看及管理工具
pstree(显示树状进程),ps,pidof,pgrep,top,htop,glance,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup
Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中;
cd /proc;
cd 1;
ls;
exe(软连接)---/sbin/init(第一个进程是init)
一、ps(process state)
ps [OPTION]...
1.支持三种选项
UNIX选项如-A -e(有一个dash)——给力
BSD选项如a(无dash)——给力
GNU选项如--help(两个dash)——不常用
ps a
ps -a
2.选项(默认显示当前终端中的进程)
a:选项包括所有终端中的进程(与终端有关)——前台进程——vim/nano f1
x:选项包括不链接终端的进程(与终端无关)——守护进程
ps ax  显示所有进程
u:选项显示进程所有者的信息(以什么身份运行程序)
以什么身份运行程序——生效的用户;
SUID——生效的用户不是发起者,是程序所有者;
ps aux  显示所有进程+运行程序的身份(生效者)
f:显示进程的父进程
e:显示所有进程
F:显示完整格式的进程信息
H:以层级格式(父子进程)显示进程信息
ps -ef  信息少
ps aux  信息多
ps -eFH  信息多
k|--sort:对属性排序(默认PID编号排序)
ps auxk %mem  按照内存大小排序(内存大的在最下面)
o+某些属性   挑选某些属性显示;
ps axo  o必须放在选项最后
ps -eo  o必须放在选项最后
ps axo pid,cmd,%cpu,%mem,state,euser,ruser,psr
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,cmd

user=euser:生效的用户
ruser:真正的发起者
psr:CPU编号——lscpu
ps -C f1.sh  显示某个进程的信息
ps -C f1.sh o pid,cmd,%cpu,%mem,state  显示某个进程的某些属性的信息
注意:f1.sh删除shebang机制(#!/bin/bahs),ps命令查不到f1.sh;所以,写脚本要规范;
二、优先级调整
系统管理工具_第1张图片
Paste_Image.png
系统管理工具_第2张图片
Paste_Image.png
1.优先级的属性
ni:nice值
pri:priority优先级
psr:processor CPU编号
rtprio:实时优先级(静态)(静态优先级:100-139)

ps axo pid,cmd,psr,ni,pri,rtprio

ping的时候,nice优先级为0(进程默认启动时的nice值为0,优先级为120);
2.进程优先级调整
耗资源的进程——优先级调低;
只有根用户才能降低nice值(提高优先性);

nice -n -20 ping 172.17.0.1
renice [-n] priority pid...
renice -n -10 5193  
renice -n -10 ping 172.17.0.1
ps axo pid,comm,ni  查看
三、pgrep(搜索进程)
1.pgrep [options] pattern
-u uid:生效者;pgrep -u root
-U uid:真正发起运行命令者
-P pid:显示指定进程的子进程
-t terminal:与指定终端相关的进程;pgrep -t pts/0
-l:显示进程名(pgrep l  不加-)
-a:显示完整格式的进程名
2.按确切的程序名称搜索:/sbin/pidof
搜索多个子进程,显示进程编号
文件/sbin/pidof(软连接)---/usr/sbin/killall5(真实文件)
pidof bash
pidof httpd
判断程序是否运行(脚本)
pidof httpd && echo $?
0——程序运行
1——程序没有运行
四、uptime
Paste_Image.png
当前时间 系统已启动的时间 当前上线人数 系统平均负载
系统平均负载:指在特定时间间隔内运行队列中的平均进程数;
通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好;
如果每个CPU内核的任务数大于5,那么此主机的性能有严重问题;
如果linux主机是1个双核CPU,当Load Average为6的时候说明机器已经被充分使用;
五、top
系统管理工具_第3张图片
Paste_Image.png
1.栏位信息简介
us:用户空间
sy:内核空间
ni:调整nice时间
id:空闲
wa:等待IO时间
hi:硬中断
si:软中断(模式切换)
st:虚拟机偷走的时间
2.排序
P:以占据的CPU百分比,%CPU
M:占据内存百分比,%MEM(kiB单位)
T:累积占据CPU时长,TIME+(时间片)

图形界面耗资源,init 3——关闭图形界面;
3.首部信息显示
l:uptime信息;
t:tasks及cpu信息;
1(数字):cpu分别显示;
m:memory信息;
q:退出命令;
s:修改刷新时间间隔;
k:终止指定进程;
W:保存文件;
systemctl status firewalld.service  关闭防火墙;
systemctl status dhclient  dhcp服务(占内存);企业都是静态IP
top -d #:指定刷新时间间隔,默认为3秒;
top -b:全部显示所有进程;
top -n #:刷新多少次后退出;
六、htop(*)
1.需从Fedora-EPEL源安装
http://172.16.0.1/fedora-epel/7/x86_64
2.选项
-d #:指定延迟时间;
-u UserName:仅显示指定用户的进程;
-s COLUME:以指定字段进行排序;
3.子命令
s:跟踪选定进程的系统调用;
l:显示选定进程打开的文件列表;
a:将选定的进程绑定至某指定CPU核心;
t:显示进程树;
七、kill
1.机制
向进程发送控制信号,以实现对进程管理,每个信号对应一个数字;
信号名称以SIG开头(可省略),不区分大小写;
2.显示当前系统可用信号
kill –l
trap -l
3.常用信号(man 7 signal)
数字 信号(完整格式) 简写 含义
1 SIGHUP HUP 无须关闭进程而让其重读配置文件
2 SIGINT INT 中止正在运行的进程;相当于Ctrl+c
3 SIGQUIT QUIT 相当于ctrl+\
9 SIGKILL KILL 强制杀死正在运行的进程
15 SIGTERM TERM 终止正在运行的进程
18 SIGCONT CONT 继续运行
19 SIGSTOP STOP 后台休眠
4.指定信号的方法
信号的数字标识:3
信号完整名称:SIGHUP
信号的简写名称:HUP
5.按PID
kill [-SIGNAL] pid…
pstree -p 查看全部进程的PID
pidof 进程名称(ping)  查看某个进程的PID
kill -n SIGHUP 3287
kill -HUP 3287
kill 1 3287  (常用)
kill –s SIGHUP 3287
6.按名称
killall [-SIGNAL] comm…  针对某个进程的所有子进程及其自身(同时关闭)
killall 15 http  
系统管理工具_第4张图片
Paste_Image.png
杀进程1的后果
kill -9 1  正在编辑的文件不会保存;
强制杀死第一个进程;表面上,没有杀死,实则有些进程已出故障,最好reboot;
kill = kill -15  默认
kill (-15) 1  正在编辑的文件可以保存(vim f1);

mingetty:用户登录界面(centos6);是一个再生进程;
kill 2373  杀不死;
kill 1  杀进程1,表面无伤害;
kill 4438  再生进程不再生;这就是kill 1的隐藏伤害;
7.按模式(与pgrep共用选项)
pkill [options] pattern
-SIGNAL
-u uid:生效者
-U uid:真正发起运行命令者
-P pid:显示指定进程的子进程
-t terminal:与指定终端相关的进程
-l:显示进程名(pgrep可用)
-a:显示完整格式的进程名(pgrep可用)
pkill -t pts/1  ping中断
pkill -t pts/1 -9  ping中断+用户被踢出该终端

last  查看日志,是否有异常IP;有,在何终端,则踢出他;
pgrep -U root  查询root发起的进程
pkill -U root  关闭root发起的进程(坑)
八、作业管理
1.Linux的作业控制
(1)前台作业:通过终端启动,且启动后一直占据终端;
进程执行有次序:1进程执行完成,2进程才会执行,输出至屏幕;

(2)后台作业:可通过终端启动,但启动后即转入后台运行(释放终端);
多个进程可以同时执行;同时输出至屏幕;
2.让作业运行于后台
系统管理工具_第5张图片
Paste_Image.png
查询命令
jobs  查看当前终端所有作业(必须在当前终端使用);
ps aux  可以在其它终端查询进程状态;
pidof 进程名称  查看进程编号
转换命令(作业控制)
fg JOB_NUM  把指定的后台作业调回前台(必须在当前终端使用)
bg JOB_NUM  让送往后台的作业在后台继续运行(休眠→运行;必须在当前终端使用);
kill  PID  终止指定的作业

后台作业被送往后台运行,依然与终端相关;退出终端,将关闭后台作业;
如果希望送往后台后,剥离与终端的关系,两种方法;
方法1:screen;COMMAND
窗口1:screen;ping 172.17.1;disconnect(断网);
窗口2:screen -ls;screen -r;接着ping;
用途:执行重要操作(备份数据)之前,输入sreen命令,就不用担心断网后,数据丢失了;
系统管理工具_第6张图片
Paste_Image.png
系统管理工具_第7张图片
Paste_Image.png
方法2:nohup COMMAND &
窗口1:nohup ping 172.17.1 &  内容输出至当前目录下的nohup.out文件中
窗口2:tail -f nohup.out  查看nohup.out文件信息(倒序)
实验步骤
nohup ping 172.17.1 &> /dev/null &  不生成nohup.out文件
jobs  查询后台作业
disconnect(断网)——reconnect(连网)
ps aux | grep ping  查询某进程是否继续运行
pstree -p
pidof ping
kill PID
系统管理工具_第8张图片
Paste_Image.png
系统管理工具_第9张图片
Paste_Image.png
3.并行运行(多条命令在后台运行)
{cmd1;cmd2}&  cmd1运行结束,才会运行cmd2;效率低
同时运行多个进程,提高效率,三种方法;
执行重要操作前,建议开一个screen;
方法1
vi all.sh
f1.sh&
f2.sh&
f3.sh&
chmod +x all.sh
./all.sh
方法2
(f1.sh&);(f2.sh&);(f3.sh&)
方法3
{ f1.sh& f2.sh& f3.sh& }

内存工具

一、vmstat(虚拟内存信息)
Paste_Image.png
1.用法
vmstat 2 5  2——2秒刷1次;5——刷新5次;
vmstat -s  显示内存的统计数据
2.栏信息
(1)procs
r:可运行(正运行或等待运行)进程的个数,和核心数有关;
b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度);
(2)memory
swpd:交换内存的使用总量;
free:空闲物理内存总量;
buffer:用于buffer的内存总量;
cache:用于cache的内存总量;
(3)swap
si:从磁盘交换进内存的数据速率(kb/s);
so:从内存交换至磁盘的数据速率(kb/s);
(4)io
bi:从块设备读入数据到系统的速率(kb/s);
bo:保存数据至块设备的速率;
(5)system
in(interrupts):中断速率,包括时钟;
cs(context switch):进程切换速率;
(6)cpu
us、sy、id、wa、st
二、iostat
系统管理工具_第10张图片
Paste_Image.png
iostat:统计CPU和设备IO信息
iostat 2 5  2——2秒刷1次;5——刷新5次;
三、pmap
pmap:进程对应的内存映射;
pmap [options] pid[...]
pmap 1  1——pid(进程编号)
pmap -x 1  显示详细格式的信息

另一种实现方式:cat /proc/PID/maps
系统管理工具_第11张图片
Paste_Image.png

系统监控工具

一、glances(EPEL源)
系统管理工具_第12张图片
Paste_Image.png
1.常用选项(*)
-h:帮助;
-b:以Byte为单位显示网卡数据速率;
-d:关闭磁盘I/O模块;
-f /path/to/somefile:设定输入文件位置;
-o {HTML|CSV}:输出格式;
-m:禁用mount模块;
-n:禁用网络模块;
-t #:延迟时间间隔;
-1:每个CPU的相关数据单独显示;
2.实验:C/S模式下运行glances命令
企业的防火墙都是远程服务端设置;自己没必要设置;
(1)
iptables -vnL  查看防火墙
iptables -F  关闭防火墙 
(2)服务器模式(绑定IP——此IP处于监控状态)
glances -s -B IPADDR
IPADDR:指明监听的本机哪个地址;
(3)观察
ss -ntlp  查看端口
注意:配置防火墙时,不要忘了把此端口打开;
     自己买的云服务,设置防火墙,要及时恢复原状态,否则就把自己坑了;
(4)客户端模式
glances -c IPADDR
IPADDR:要连入的服务器端地址;

例如
centos7上操作:glances -s -B 192.168.8.133(centos7的IP)
centos6上操作:glances -c 192.168.8.133  监控此IP主机的状态(监控远程服务器)
内部用(局域网用):否则不安全;
二、dstat
1.dstat
系统资源统计,代替vmstat、iostat;
系统管理工具_第13张图片
Paste_Image.png
2.UNIX选项(一个dash)
-c:显示cpu相关信息;
-C #,#,...,total
-d:显示disk相关信息;
-D total,sda,sdb,...
-g:显示page相关统计数据;
-m:显示memory相关统计数据;
-n:显示network相关统计数据;
-p:显示process相关统计数据;
-r:显示io请求相关的统计数据;
-s:显示swapped相关的统计数据;
3.GNU选项(两个dash)
--tcp
--udp
--unix
--raw
--socket
--ipc
--top-cpu:显示最占用CPU的进程;
--top-io:显示最占用io的进程;
--top-mem:显示最占用内存的进程;
--top-latency:显示延迟最大的进程;

你可能感兴趣的:(系统管理工具)