首页 > 代码库 > Linux笔记(十三) - 系统管理

Linux笔记(十三) - 系统管理

(1)进程管理
1.判断服务器健康状态
2.查看进程
a.查看系统中所有进程:ps
    例:ps aux(使用BSD操作系统命令格式)
    a 显示所有前台进程
    x 显示所有后台进程
    u 显示哪个用户产生
        ps -le(使用linux标准命令格式)
    -l 显示更加详细的信息
    -e 显示所有进程
    结果说明
    VSZ :占用虚拟内存大小KB
    RSS :占用实际物理内存大小KB
    TTY :进程登录终端(?表示内核直接产生,1-7代表本地控制台终端,pts/0-255虚拟终端)
    STAT :状态。R运行,S睡眠,T停止,s包含子进程,+位于后台
    START:启动时间
    TIME :占用cpu时间
    COMMAND:产生此进程的命令
b.查看系统健康状态:top
    -d 每隔几秒更新,默认3秒
    交互过程中使用:
    ?/h :显示交互模式的帮助
    P :以cpu使用率排序
    M :以内存使用率排序
    N :以pid排序
    q :退出top
    结果说明
    top - 
     18:31:55 系统当前时间
     up 1 day,18:28, 系统的总运行时间
     1 user,  当前登录了1个用户 
     load average: 0.00, 0.00, 0.00 系统在前5,10,15分钟的平均负载,大于1则超载
    
    Tasks: 进程数
     83 total, 总
     1 running, 正在运行
     82 sleeping, 睡眠
     0 stopped, 正在停止
     0 zombie 僵尸
    
    Cpu(s): 占用的cup百分比
     0.0%us, 用户模式
     0.3%sy, 系统模式
     0.0%ni, 改变过优先级的用户进程
     99.3%id, 空闲(小于20%则需硬件升级)
     0.0%wa, 等待输入输出
     0.0%hi, 硬中断请求服务
     0.3%si, 软中断请求服务
     0.0%st 虚拟时间,当有虚拟机时,虚拟cpu等待实际cpu的时间
    
    Mem: 物理内存大小KB
     1004760k total, 总量
     867512k used, 已使用
     137248k free, 空闲
     62176k buffers 作为缓冲
     
    Swap: 交换分区大小KB
     2047996k total, 总量
     5492k used, 已使用
     2042504k free, 空闲  
     144888k cached 作为缓冲

c.查看所有进程:pstree
     -p 查看详情
     -u 显示进程用户
3.杀死进程
a.查看可用的进程信号:kill -l 
    例:kill -1 22222 重启 pid
        kill -9 22222 强制终止
        kill 22222 正常终止
    信号代码    信号名称    说明
        1        SIGHUP    该信号让进程立即关闭,然后重新读取配置文件之后重启
        2        SIGHUP    程序终止信号,用于终止前台进程。相当于ctrl+c 
        8        SIGFPE      在发生致命的算术运算错误发出,不仅包括浮点运算错误,还包括溢出及除数为0等其它所有的算术错误
        9       SIGKILL   用来立即结束程序的运行,本信号不能被阻塞、处理和忽略。一般强于终止进程
        14      SIGALRM    时钟定时信号,计算的是实际的时间或时钟。alarm函数使用该信号
        15      SIGTERM      正常结束进程的信号,kill命令的默认信号。有时如果进程已经发生问题,这个信号是无法正常终止进程的,我们才会尝试SIGKILL信号,也就是是信号9
        18        SIGCONT    让暂停的进程恢复执行,本信号不能被阻断
        19      SIGSTOP    该信号可以暂停前台进程,相当于ctrl+z。本信号不能被阻断
b.杀死所有进程:killall [选项] [信号] 进程名
    -i 交互式,询问是否要杀死某个进程
    -I 忽略进程名的大小写
    例:killall -9 mysqld
c.按照进程名终止进程:pkill [选项] [信号] 进程名
    -t 终端号:按照终端号踢出用户
    例:
    查看当前用户:w
    踢出用户: pkill -9 -t tty1

(2)工作管理
1.把进程放入后台    
a.后台运行    & :tar -zcf aa.tar.gz /aa &
b.后台暂停 ctrl+z :top ,在top执行过程中按ctrl+z

2.查看工作:jobs -l 
-l 显示pid
注:+代表最近一个放入后台,也是工作恢复时默认恢复的工作。-代表倒数第二个。[n]代表工作号
    
3.将后台暂停的工作恢复到前台:fg %工作号
注:%可以省略
    
4.将后台暂停的工作恢复到后台运行:bg %工作号

(3)系统资源查看
1.监控系统资源:vmstat [刷新延时 刷新次数]
例:vmstat 1 3

2.显示开机时内核监测信息(查看硬件信息):dmesg
例:dmesg | grep CPU
3.查看内存使用状态:free [-b|k|m|g]
-b 以字节为单位
-k 以kb为单位(默认)
-m 以mb为单位
-g 以gb为单位

4.查看CPU信息:cat /proc/cpuinfo

5.查看系统版本:cat /etc/redhat-release

6.显示系统启动时间和平均负载:uptime

7.查看系统与内核相关信息:uname [选项]
-a 查看系统所有相关信息
-r 查看内核版本
-s 查看内核名称
8.判断当前系统位数:file /bin/ls
9.判断当前系统发行版本:lsb_release -a
10.列出进程打开或使用的文件信息:lsof [选项]
-c 字符串:只列出字符串开头的
-u 用户名:只列出指定用户的
-p pid:只列出指定pid的
(4)系统定时任务
1.服务管理与访问控制:crond
开启:service crond start 
自启:chkconfig crond on
2.用户的crontab设置:crontab [选项]
-e 编辑定时任务
-l 查询定时任务
-r 删除当前用户所有定时任务
格式:
分 时 日 月 周 执行任务
例:*/10 0-23 1,15 * 1 date >> a.log  : 每月1号和15号和每周一的0点到23点每隔10分钟

Linux笔记(十三) - 系统管理