Linux系统管理

2018-01-01  本文已影响0人  其实我很dou

Lunux系统管理

一. 进程管理

进程是正在执行的一个程序或者命令, 每个进程都是一个运行的实体, 都有自己的地址空间, 并占用一定的系统资源, 如ls命令, apache服务

进程管理作用:

1. 查看所有进程

1.1 ps命令

选项含义

-a : 显示一个终端的所有进程, 除了会话引线
-u : 显示进程的归属用户及内存的使用情况
-x : 显示没有控制终端的进程
-l : 长格式显示, 更加详细的信息
-e : 显示所有进程

ps命令输出含义

USER : 产生进程的用户
PID: 进程id
%CPU: 占用cpu资源百分比
%MEM: 占用屋里内容百分比
VSZ: 占用虚拟内存的大小, 单位kb
RSS: 该进程占用实际物理内尺寸的大小, 单位kb
TTY: 该进程是在哪个终端中运行的, 其中tty1-tty7代表本地控制台终端, tty1-tty6是本地字符界面终端, tty7是图形终端, pts/0-255代表虚拟终端, 远程连接, 使用pts
STAT: 进程状态, 常见状态有
    R: 运行
    S: 睡眠
    T: 停止状态
    s: 包含子进程
    +: 位于后台
START: 该进程启动时间
TIME: 该进程占用CPU的运算时间, 不是系统时间
COMMAND: 产生此进程的命令名

1.2. pstree: 查看进程树

pstree选项含义

-p: 显示进程的PID
-u: 显示进程的所属用户

pstree输出

init─┬─anacron
     ├─auditd───{auditd}
     ├─crond
     ├─dbus-daemon
     ├─dhclient
     ├─httpd───3*[httpd───26*[{httpd}]]
     ├─master─┬─pickup
     │        └─qmgr
     ├─6*[mingetty]
     ├─mysqld_safe───mysqld───20*[{mysqld}]
     ├─redis-server───2*[{redis-server}]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd─┬─3*[sshd───bash]
     │      └─sshd───bash───pstree
     ├─udevd───2*[udevd]
     └─xinetd

1.3 top 任务管理器

-d: 指定刷新秒数, 默认是3s
-b: 使用批处理模式输出, 一般和-n选项合用
-n: 次数, 指定top命令执行的次数

top -b -n 2 >> top.log
h: 显示帮助信息
P: CPU排序(默认)
M: 内存排序
N: 以PID排序
q: 退出top
top命令输出如下:
top - 09:51:14 up 46 min,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  81 total,   1 running,  80 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1004412k total,   641704k used,   362708k free,    11156k buffers
Swap:  2031608k total,        0k used,  2031608k free,    74220k cached
....






1.4 杀死进程

查看apache进程
ps aux | grep httpd
root       1986  0.0  0.8 116448  8120 ?        Ss   10:41   0:00 /usr/local/apache/bin/httpd -k start
web        1987  0.0  0.8 460708  8036 ?        Sl   10:41   0:00 /usr/local/apache/bin/httpd -k start
web        1988  0.0  0.8 460708  8040 ?        Sl   10:41   0:00 /usr/local/apache/bin/httpd -k start
web        1989  0.0  0.8 460708  8044 ?        Sl   10:41   0:00 /usr/local/apache/bin/httpd -k start
root       2072  0.0  0.0 103248   872 pts/0    S+   10:41   0:00 grep --color=auto httpd

读取配置文件重启apache 
kill -1 1986
杀死apache
kill -9 1986

killall -i -9 httpd

示例:
a. 执行w, 会看到三个远程登录终端

[root@localhost ~]# w
 10:49:07 up  1:44,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.103    09:37    0.00s  0.05s  0.00s w
root     pts/1    192.168.1.103    10:49    4.00s  0.00s  0.00s -bash
root     pts/2    192.168.1.103    10:49    2.00s  0.00s  0.00s -bash

b. 执行pkill -9 -t pts/1踢掉一个登陆终端, 执行
pkill -9 -t pts/2踢掉另一个

二. 工作管理

1. 概述

工作管理指在单个登陆终端中, 也就是登陆的shell界面中, 同时管理多个工作的行为

2. 注意事项

3. 工作管理方法

[root@localhost ~]# jobs -l
[1]   2124 Running                 /usr/local/mysql/bin/mysqld_safe --user=mysql &
[2]-  2366 停止 (tty 输出)     top
[3]+  2367 停止 (tty 输出)     top
[root@localhost ~]# 
// 查看工作任务
[root@localhost ~]# jobs
[1]   Running                 /usr/local/mysql/bin/mysqld_safe --user=mysql &
[2]-  Stopped                 top
[3]+  Stopped                 top

//将mysql恢复到前台
[root@localhost ~]# fg %1
/usr/local/mysql/bin/mysqld_safe --user=mysql

// 终端阻塞
// 按下ctrl+z
^Z
[1]+  Stopped                 /usr/local/mysql/bin/mysqld_safe --user=mysql
// 查看工作计划, mysql处于暂停状态
[root@localhost ~]# jobs
[1]+  Stopped                 /usr/local/mysql/bin/mysqld_safe --user=mysql
[2]   Stopped                 top
[3]-  Stopped                 top
// 将其放入后台执行
[root@localhost ~]# bg %1
[1]+ /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@localhost ~]# 

**把命令放入后台, 只能在当前登录终端执行, 一旦关闭当前登录终端, 会向系统发送SIGHUB信号, 结束当前登录终端后端运行的所有进程, 如何使后台命令脱离终端运行呢? **

4 后台命令脱离终端

nohup 命令 &

三. 系统资源查看

1. vmstat命令系统资源查看

vmstat[刷新延时 刷新次数]
如: vmstat 1 3

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 686688  14496 211932    0    0    23     2   42   73  0  0 100  0  0   
 0  0      0 686648  14496 211952    0    0     0     0   45   67  0  1 99  0  0    
 0  0      0 686648  14496 211952    0    0     0     0   37   66  0  0 100  0  0   

缓存是用来加速数据从硬盘读取
缓冲时用来加速数据写入硬盘
通过内存实现buffer和cache功能





2. dmesg开机时内核检测

dmesg | grep CPU

3. free查看内存使用情况

[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        310        670          0         14        206
-/+ buffers/cache:         89        891
Swap:         1983          0       1983

显示字段含义

4. 查看CPU信息

cat /proc/cpuinfo

5. 查看系统平均负载和启动时间

uptime

6. uname -a 查看linux版本

7. 列出进程打开或者使用的文件信息

lsof[选项]
选项

lsof | more
lsof /sbin/init 查询某个文件被哪个进程调用
lsof -c httpd 查看httpd进程调用了那些文件
lsof -u root 按照用户名, 查询某个用户进程调用的文件名
上一篇 下一篇

猜你喜欢

热点阅读