zoukankan      html  css  js  c++  java
  • 第12章 Linux系统管理

    1. 进程管理

    1.1 进程查看

    (1)进程简介

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

    (2)进程管理的作用

      ①判断服务器健康状态

      ②查看系统中所有进程

      ③杀死进程

    (3)查看系统中所有的进程

      #ps aux  //使用Unix操作系统的BSD格式,其中a表示所有前台,x表示后台进程,u表示显示创建进程的用户。

      #ps -le  //使用linux标准命令格式,其中l表示详细信息,e表示所有进程

     

      ①USER:该进程是由哪个用户产生的。

      ②PID:进程的ID号

      ③%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源

      ④&MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源

      ⑤VSZ:该进程占用虚拟内存的大小,单位KB

      ⑥RSS:该进程占用实际物理内存的大小,单位KB

      ⑦TTY:该进程是在哪个终端运行的。其中的tty1-tty7代表本地控制台终端,tty1-tty67是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。

      ⑧STAT:进程状态。常见的状态有:R—运行;S-睡眠;T—停止状态;s-包含子进程;+—位于后台。

      ⑨START,TIME:进程启动时间和占用CPU的运算时间。

      ⑩COMMAND:产生此进程的命令名。

    (4)查看系统的健康状态#top [选项]  //类似于Windows的任务管理器

      ①其中选项:“-d 秒数” 可以指定top命令每隔几秒更新。默认是3秒

      ②在top命令的交互模式中,可以执行的命令

    命令

    作用

    ?或h

    显示交互模式的帮助

    P

    以CPU使用率排序,默认就是此项

    M

    以内存的使用排序

    N

    以PID排序

    q

    退出top

      ③top显示的信息

     

    行数

    内容

    说明

    第1行

    任务队列信息

     

    12:02:46

    系统当前时间

    up 45 min

    系统的运行时间,本机己经运行了45分钟

    1 users

    当前登录了1个用户

    Load average:

    0.03,0.04,0.05

    系统在之前1分钟、5分钟、15分钟的平均负载。一般认为小于1,表示负载较小。如果大于1,系统己经超出负荷。

    第2行

    (进程信息)

    Tasks: 84 total

    系统中的进程总数

    1 running

    正在运行的进程数

    83 sleeping

    睡眠的进程

    0 stopped

    正在停止的进程

    0 zombie

    僵尸进程。如果不是0,需要手工检查僵尸进程

    第3行

    CPU信息

    Cpus(s):0.0%us

    用户模式占用的CPU百分比

    0.0%sy

    系统模式占用的CPU百分比

    0.0%ni

    改变过优先级的用户进程占用的CPU百分比

    99.7%id

    空闲的CPU百分比

    0.0%wa

    等待输入/输出的进程占用CPU百分比

    0.0%hi

    硬中断请求服务占用的CPU百分比

    0.3%si

    软中断请求服务占用的CPU百分比

    0.0%st

    st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比

    第4行

    物理内存信息

    Mem:103034k total

    物理内存的总量,单位KB

    128148k used

    己经使用的物理内存数量

    902196k free

    空闲的物理内存数量

    13680k buffers

    作为缓冲的内存数量

    第5行

    交换分区(swap)信息

    Swap:1023996k total

    交换分区(虚拟内存)的总大小

    0k used

    己经使用的交换分区的大小

    1023996k free

    空闲交换分区的大小

    37772k cached

    作为缓存的交换分区的大小

    (5)查看进程树#pstree [选项] //其中选项:-p显示进程的PID,-u显示进程所属的用户。

    1.2 终止进程

    (1)kill 命令

      ①查看可用的进程信息:#kill –l

    信号代号

    信号名称

    说明

    1

    SIGUP

    该信号让进程立即关闭,然后重新读取配置文件之后重启

    2

    SIGINT

    程序终止信号,用于终止前台进程。相当于输出ctrl+c快捷键

    8

    SIGFPE

    在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除0等其它所有的算术错误。

    9

    SIGKILL

    用来立即结束程序运行。本信号不能被阻塞、处理和忽略。一般用于强制终止进程。

    14

    SIGALARM

    时钟定时信号,计算的是实际的时间或时钟时间。alarm函数使用该信号

    15

    SIGTERM

    正常结束进程的信号,kill命令的默认信号。有时如果进程己经发生问题,这个信号是无法正常终止进程的,这时才可以尝试SIGKILL信号,也就是信号9.

    18

    SIGCONT

    该信号可以让暂停的进程恢复执行,本信号不能被阻断

    19

    SIGSTOP

    该信号可以暂停前台进程,相当于输入ctrl+z快捷键。本信号不能被阻断。

      ②终止进程:#kill -信号代码 进程号

    (2)killall命令:#killall [选项] [信号] 进程名 //按进程名杀死进程

          其中选项:-i表示交互式,询问是否要杀死某个进程。-I:忽略进程名的大小写。如,#killall -9i httpd,表示强制杀死httpd进程。

    (3)pkill命令:#pkill [选项] [信号] 进程名 //按进程名终止进程。其中选项“-t 终端号”:按照终端号踢出用户。

      ①#w //使用w命令查询本机己经登录的用户

      ②#pkill -t -9 pts/1  //强制杀死从pts/1虚拟终端登录的进程。

    2. 工作管理

    (1)把进程放入后台:(后台进程相当于Windows下最小化的窗口

      ①方法1:#tar –zcf etc.tar.gz /etc & //其中的&表示将进程放入后台,相当于Windows中的窗口最小化。注意,这种方式放入后台的,进程仍在执行

      ②方法2:如,#top  //在top命令执行的过程中,按下ctrl+z快捷键。注意,这种方式放入后台的,进程会被暂停执行

    (2)查看后台的工作:#jobs [-l] //其中的-l显示工作的PID。

      ①输出结果,如:[1]+  1742 停止 (信号)         top

      ②注意,其中的[1]为工作号,表示放入后台的先后顺序,“+”号代表最后一个放入后台的工作,也是工作恢复时,默认恢复的工作。“-”号代表倒数第2个放入后台的工作。

    (3)恢复后台暂停的工作

      ①恢复到前台执行

        #fg %工作号  //其中的%号可以省略,但要注意工作号和PID的区别。

      ②恢复到后台执行

        #bg %工作号  //注意,后台恢复执行的命令,是不能和前台有交互的。否则不能恢复到后台执行。

    3. 系统资源查看

    查看内容

    命令及说明

    监控系统资源

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

    开机时内核检测信息

    #dmesg  或 #dmesg | grep CPU

    查看内存使用状态

    #free [-b|-k|-m|-g] //以字节,KB、MB、GB为单位。默认以KB为单位。

    查看CPU信息

    #cat /proc/cpuinfo

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

    #uptime, 也就是top命令的第1行。w命令也可以看到这个数据

    查看系统与内核相关信息

    #uname [选项] //其中选项-a用于查看系统所有西相关信息;-r查看内核版本;-s查看内核名称

    判断当前系统的位数

    #file /bin/ls

    查询当前Linux系统的发行版本

    #lsb_release -a

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

    #lsof [选项] //其中选项“-c 字符串”:只列出以字符串开头的进程打开的文件;“-u 用户名”:只列出某个用户的进程打开的文件;“-p pid”列出某个PID进程打开的文件。

    4. 系统定时任务

    (1)crond服务管理与访问控制

      ①#service crond restart  //启动

      ②#chkconfig crond on     //自启动

    (2)用户的crontab设置:

      ①命令:#crontab [选项] //其中“-e”:编辑crontab定时任务“-l”查询crontab任务“-r”删除当前用户所有的crontab任务

      #crontab -e  进入编辑,增加形如:“* * * * * command”的任务

     

     

    项目

    含义

    范围

    第1个“*”

    1小时当中的第几分钟

    0-59

    第2个“*”

    1天当中的第几个小时

    0-23

    第3个“*”

    1个月当中的第几天

    1-31

    第4个“*”

    一年当中的第几个月

    1-12

    第5个“*”

    一周当中的星期几

    0-7(0和7都代表星期日)

      ②任务设置

    时间

    含义

    特殊符号及含义

    45 22 * * * 命令

    在22点45分执行命令

    ①“*”:代表任何时间。比如第1个“*”表示1小时中的每分钟都会执行一次的意思。

    ②“,”代表不连续时间。比如“0 8,12,16 * * * 命令”就代表每天的8点0分,12点0分,16点0分都执行一次命令。

    ③“-”代表连续的时间范围。比如“0 5 * * 1-6 命令” 代表在周一至周六凌晨5点执行命令

    ④“*/n”代表每隔多久执行一次。比如“*/10 * * * * 命令”代表每隔10分钟就执行一次命令。

    0 17 * * 1 命令

    在每周1的17点0分执行命令

    0 5 1,15 * * 命令

    每月1号和15号的5点0分执行命令

    40 4 * * 1-5 命令

    每周一至周五的4点40分执行命令

    */10 4 * * * 命令

    每天凌晨4点,每隔10分钟执行一次命令

    0 0 1,15 * 1 命令

    每月1号和15号或每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现。因为他们定义的都是天,非常容易搞混 。

    (3)应用举例

      # crontab -e

    */5 * * * * /bin/echo "aa" >> /tmp/test   //每5分钟执行
    
    5 5 * * 2 /sbin/shutdown -r now           //每周2凌晨5点5分执行
    
    0 5 1,10,15 * * /root/sh/autobak.sh       //每月1、10、15号5点执行
  • 相关阅读:
    Linux常用
    Netty实战八之引导
    Netty实战九之单元测试
    Netty实战七之EventLoop和线程模型
    作为团队技术负责人,我是这样面试前端的
    Netty实战六之ChannelHandler和ChannelPipeline
    Netty实战五之ByteBuf
    Netty实战四之传输
    Netty实战三之Netty的组件和设计
    Netty实战二之自己的Netty应用程序
  • 原文地址:https://www.cnblogs.com/5iedu/p/6255976.html
Copyright © 2011-2022 走看看