linux进程和计划任务

内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、 安全功能等

进程管理:

    系统优先级:数字越小,优先级越高
    实时优先级: 99-0,值最大优先级最高
    nice值:-20 到19 ,对应系统优先级100-139或99

Linux 内核:抢占式多任务
          进程类型:
                     守护进程: daemon, 在系统引导过程中启动的进程,和终端无关进程
                     前台进程:跟终端相关,通过终端启动的进程
                     注意:两者可相互转化
          进程状态:
                  运行态:running
                  就绪态:ready
                  睡眠态:
                  可中断:interruptable
                 不可中断:uninterruptable
                 停止态:stopped, 暂停于内存,但不会被调度,除非手动启动
                 僵死态:zombie,结束进程,父进程结束前,子进程不关闭

进程和线程的区别:

      一个进程可以有多个线程,一个CPU只能运行一个进程,

      线程可以共享资源,包括网络资源,内存资源

进程管理工具:
          pstree  -p  :  查看进程树    -p   查看pid
          ps            :  查看终端信息
             默认显示当前终端中的进程
                • a 选项包括所有终端中的进程
                • x 选项包括不链接终端的进程
                • u 选项显示进程所有者的信息
                • f 选项显示进程的父进程
                • o 属性…  选项显示定制的信息
                        pid 、comm 、%cpu 、%mem 、state 、tty 、euser 、ruser
          pidof  command      : 查看运行命令的pid
          stat:进程状态 
               R            S         D           T          Z          L       N     < 
                     可中断休眠   停止             僵尸进程    多线程         高优先级
                            
        常用组合:-ef
                  -e:  显示所有进程
                  -f:  显示完整格式程序信息
       常用组合:-eFH
                  -F:  显示更完整格式的进程信息
                  -H:  以进程层级格式显示进程相关信息

nice命令:
       nice 10 pid
       renice -n 10 pid      调整进程优先级
uptime :  显示当前时间,和系统平均负载 

top命令:
       -d #   :指定刷新时间间隔,默认为3秒
       -b     :以批次方式 (就是一次显示一个页面)
       -n #   :显示多少批次(比如显示3次页面就退出的意思)
        排序:
P :以占据的CPU 百分比,%CPU
M :占据内存百分比,%MEM
T :累积占据CPU 时长,TIME+
       首部信息显示:
uptime 信息:      l 命令
tasks 及cpu 信息: t 命令
cpu 分别显示:     1 ( 数字)
memory 信息:      m 命令
退出命令:         q
修改刷新时间间隔: s
终止指定进程:     k
保存文件:         W    
top栏位信息简介;进程查看对比就方便记住了

htop 命令:需从Fedora-EPEL 源安装 yum -y install htop

vmstat: 虚拟内存信息

    vmstat 2 5   :  每2秒显示一次,显示五次结束

               iostat: 统计CPU 和设备IO 信息

                  iostat 2  5 : 

系统监测工具:

      glance: 

             服务器模式:
                    glances -s -B IPADDR
                                    IPADDR: 指明监听的本机哪个地址

             客户端模式:
                   glances -c IPADDR
                                  IPADDR: 要连入的服务器端地址

       dstat:, 代替vmstat,iostat;功能很强大
-c:  显示cpu 相关信息
-d:  显示disk 相关信息
-g :显示page 相关统计数据
-m:  显示memory 相关统计数据
-n:  显示network 相关统计数据
-p:  显示process 相关统计数据
-r:  显示io 请求相关的统计数据
-s:  显示swapped相关的统计数据

kill 命令:
向进程发送控制信号;以实现对进程管理,每个信号对应一个数字,信号名称以SIG开头(可省略)不区分大小写
       显示当前系统可用信号: kill –l,trap -l
常用信号:man 7 signal
1) SIGHUP:  无须关闭进程而让其重读配置文件
2) SIGINT:  中止正在运行的进程;相当于Ctrl+c
3) SIGQUIT: 相当于ctrl+\
9) SIGKILL:  强制杀死正在运行的进程
15) SIGTERM :终止正在运行的进程
18) SIGCONT :继续运行
19) SIGSTOP :后台休眠
指定信号的方法:
(1)  信号的数字标识:1, 2, 9
(2)  信号的简写名称:HUP

例如:kill -9 PID        kill -1  pid  

作业管理:
       Linux 的作业控制
前台作业:通过终端启动,且启动后一直占据终端;
后台作业:可通过终端启动,但启动后即转入后台运行(释放终端)
  如何让作业运行于后台?
(1)  运行中的作业: Ctrl+z     (此操作会使进程休眠)
(2)  尚未启动的作业:# COMMAND &  (此操作后台运行)
  后台作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭
后台作业。如果希望送往后台后,剥离与终端的关系
              # nohup COMMAND & #screen;COMMAND
  查看所有作业:
              # jobs
  作业控制:  后台作业都会有一个编号,直接指定编号也行
          # fg [[%]JOB_NUM] :把指定的后台作业调回前台
          # bg [[%]JOB_NUM] :让送往后台的作业在后台继续运行
          # kill [%JOB_NUM] :终止指定的作业
并行运行:
      方法1      (写三个脚本,放到一个脚本运行,每个脚本后用&)
         vi all.sh
             f1.sh&
             f2.sh&
             f3.sh&
    方法2
        (f1.sh&);(f2.sh&);(f3.sh&)
    方法3

        { f1.sh& f2.sh& f3.sh& }

任务计划:

    Linux 任务计划、周期性任务执行
•  未来的某时间点执行一次任务
             at
             batch :系统 自行选择空闲时间去执行此处指定的任务
•  周期性运行某任务
             cron

at: 依赖软件包,考试时候类似的包都会挖坑,需要手动启动服务,否则做完不生效
    rpm -q at    :查询软件包名称
    rpm -ql at   : 查询安装包路径        
       service atd status   :查看当前服务是否启动    start和stop,临时启动
       chkconfig  –list atd :查看是否开机启动的
       chkconfif –level 5 atd on/off   :在模式5设置开机启动或者关闭 –help 查看帮助
    centos7 :
       systemctl   is-enabled atd  :查看atd下次启动是否自动启动
       systenctl   enabled   atd   :  下次启动自动启动
       systenctl   disable   atd   :  下次启动不自动启动

at time   :命令格式,后面跟时间,ctrl+d  结束      
     at -l  :  查看计划任务
     at -d  #: 删除指定的计划任务编号
     at -c #:  查看任务计划内容, 目录在 /var/spool/at/  
     at -f *.text  time:   把多个任务计划写到文件调用
     at -m  : 当任务 被完成之后,将给用户发送邮件,即使没有标准输出
     计划任务结果以邮件形式发送,建议使用重定向解决 >/dev/null
     同时间的计划任务支持并行运行。

at.deny 和at.allow       /et/at.deny     默认/etc/at.allow 不存在
      at.deny 黑名单,要生效的前提,at.allow不存在,白名单的优先级最高
      at.allow 白名单,只有白名单的用户才可能执行at,默认不存在,如果存在,at.deny失效,优先级高
如果都不存在,只有root可以执行at
      如果 两个文件都不存在有 ,只有 root 行 可以执行 at  命令

周期性任务计划:
     cron :  和at一样,需要先查询清楚路径和是否启动服务,或者开机启动
     rpm -qa cron* :  可以用通配符搜索;
     确保crond 守护处于运行状态:
          CentOS 7:
                systemctl status crond
          CentOS 6:
                service crond status
  计划周期性执行的任务提交给crond ,到指定时间会自动运行
  系统cron 任务:系统维护作业
            /etc/crontab
  用户cron 任务:
                crontab 命令
         日志:/var/log/cron
   周期性计划对符号敏感,比如%,所以建议调用脚本,否则需要加单引号;

   vim /etc/crontab 
   时间表示法:
• (1)  特定值
给定时间点有效取值范围内的值
• (2)  *
给定时间点上有效取值范围内的所有值
表示 “每…”
• (3)  离散取值
#,#,#
• (4)  连续取值
#-#
• (5)  在指定时间范围上, 定义步长
/#: #即为步长
  示例:每3小时echo 命令
0 */3 * * * centos /bin/echo “howdy!”
一般来说,几月几号和周几一般不同时出现,如果都出现,表示或者的关系,都会执行

   @reboot  Run once after reboot      :表示下次开机运行
 @yearly 0 0 1 1 *
 @annually 0 0 1 1 *
 @monthly 0 0 1 * *
 @weekly 0 0 * * 0
 @daily 0 0 * * *
 @hourly 0 * * * *
  
   系统的计划任务:
/etc/crontab
/etc/cron.d/ 配置文件
/etc/cron.hourly/  脚本
/etc/cron.daily/   脚本
/etc/cron.weekly/  脚本
/etc/cron.monthly/ 脚本

原创文章,作者:shewei,如若转载,请注明出处:http://www.178linux.com/71581

(0)
sheweishewei
上一篇 2017-03-22
下一篇 2017-03-24

相关推荐

  • 初识正则表达式

    正则表达式是个什么东东? 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE)。在很多文本编辑器里、命令中,通常要使用检索、替换、放行和拒绝那些符合某个模式的文本。而正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。  摘自《正则表达式之…

    Linux干货 2015-03-27
  • N22-℡浮生.若夢 ╮第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ~]# cp -r /etc/skel/ /home/tuser1 ~]# chmod -R 700 /home/tuser1 ~]#&nbsp…

    Linux干货 2016-09-19
  • Linux 目录配置

    Linux 目录配置 Linux目录配置标准:FHS 因为利用Linux来开发产品或distributions的团队/公司与个人实在太多了,如果每个人都用自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰。所以/后来就有所谓的Filesystem Hierarchy Standard (FHS)标准出炉了。 根据FHS(http://www.pa…

    Linux干货 2017-03-26
  • shell中的if else语句与文件查找find浅析

    shell中的if else语句与文件查找find浅析    上篇文章中我们讲述了shell脚本编程的初步入门,其中讲到了shell编程中的顺序执行,顺序执行时一种简单的小脚本,如果在编辑脚本的时候遇到要做出条件判断执行的时候要怎么办呢?我们学习过if之后你会发现这会很简单。if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。 S…

    Linux干货 2016-08-16
  • ☞实时数据同步方案{ rsync; inotify; }

    实时数据同步方案{ rsync; inotify; } rsync 传输数据 安装 rsyncd 服务 CentOS 6 CentOS 7 配置 rsyncd 服务 配置 rsync 手动同步示例     启动 rsyncd 服务 CentOS 6 CentOS 7 rsync 客户端命令 rsync 数据传输功能 基…

    Linux干货 2016-10-29
  • 第六周总结

    请详细总结vim编辑器的使用并完成以下练习题 vim: 模块化的编辑器   基本模式: 编辑模式,命令模式 输入模式 末行模式: 打开文件: # vim [options] [file..] +#:打开文件后,直接让光标处于第#行的行首; +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首; 模式转换: 编辑模式:…

    Linux干货 2017-08-07