Linux任务计划及内核管理

作业管理:

    前台作业:通过终端启动,且启动后一直占据终端;

    后台作业:通过终端启动,但启动后随即转入后台运行(释放终端)

将作业放入后台的操作

    1)运行中的作业:ctrl+z

    2)还未执行的作业:command &

    

后台作业虽然被送往后台运行,但其依然和终端相关,退出终端,将关闭后台作业,如果希望送往后台后,剥离与终端的关系:

    nohup command & 

    screen command &

jobs:可以查看所有的作业

blob.png

作业控制:

    fg [[%]job_num]:把指定的后台作业调回前台

    bg [[%]jpb_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& }

进程优先级调整:

    静态优先级:100-139

    进程默认启动时的nice值为0,优先级为120

    只有根用户才能降低nice值(提高优先级)

nice命令:

    nice [option][command [arg]…]

renice命令:

    renice [-n] priority pid…

查看:

    ps axo pid,comm,ni

Linux任务计划

    在未来的某个时间段执行一次任务:at

    blob.png

    blob.png    

    at [option]Time

    选项:

        -V 显示版本信息

        -l 列出指定队列中等待运行的作业;相当于atq

        -d 删除指定的作业,相当于atrm

        -c 查看具体作业任务

        -f /path/from/somefile 从指定的文件中读取任务

        -m 当任务被完成之后,将给用户发送邮件,即使没有标准输出

    blob.png

        注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

        TIME:定义出什么时候进行at这项任务的时间

        HH:MM[yyyy-mm-dd]

        noon,midnight,teatime(4pm)

        tomorrow

        now+#{minutes,hours,days,or weeks}

    at任务的执行方式:

        1)交互式  2)重定向  3)at -f 文件

    at任务计划依赖于atd服务,需要启动才能实现at任务

    at队列存放在/var/spool/at目录中

    blob.png

    

    /etc/at.deny文件控制者哪些用户不能执行at任务计划

    blob.png

    /etc/at.allow文件控制着哪些用户可以使用任务计划,默认情况下没有创建该文件,如果同时一个用户同时存在于这两个文件中,则以allow文件为准,如果两个文件都不存在,则表示只有root用户才可以使用at命令。


    batch:系统自行选择空闲时间去执行此处指定的任务


    周期性运行某任务:cron

    cronie:主程序包,提供crond守护进程及相关辅助工具

    cronie-anacron:cronie的补充程序,用于监控cronie任务执行情况,如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务

    crontabs:包含centos提供系统维护任务

    确保crond守护处于运行状态

    Centos 7:systemctl status crond

    blob.png

    Centos 6: service crond status

    blob.png

    计划周期性执行的任务提交给crond,到指定时间会自动运行系统cron任务:

        系统维护作业:

            /etc/crontab

     blob.png

        用户任务:

            crontab命令

    blob.png

    计划任务的日志:/var/log/cron

    时间表示法:

    1)特定值

            给定时间点有效取值范围内的值

    2)*

            给定时间点上有效取值范围内的所有值

            表示“每…"

    3) 离散取值

            #,#,#

    4)连续取值

            #-#

    5)在指定时间范围内,定义步长

            /#:#即为步长

    blob.png

    时间格式:

    @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/ 存放一些配置文件

    blob.png

    /etc/cron.hourly/

    /etc/cron.daily/

    /etc/cron.weekly/

    /etc/cron.monthly/

    用于存放任务计划脚本

    blob.png

    

    anacron系统:

    a.运行计算机关机时cron不运行的任务,Centons6以后版本取消anacron服务,由crond服务管理

    b.假设计算机没有一直开机

    c.对笔记本电脑,台式机,工作站及其他不一致开机的系统很重要

    d.对偶尔要关机的服务器很重要

    e.配置文件:/etc/anacrontab,负责执行/etc/cron.daily/ /etc/cron.weekly/ /etc/monthly/中系统任务,/etc/cron.hourly/由/etc/cron.d/0hourly负责执行

    blob.png

        字段1:如果在这些时间没有运行这些任务

        字段2:再重新引导后等待这么多分钟后运行它

        字段3:任务识别器,在日志文件中标识

        字段4:要执行的任务

        当任务执行时,更新/var/spool/anacron/中文件的时间戳

        blob.png


    临时文件管理

        Centos6使用/etc/cron.daily/tmpwatch 定时清除临时文件

        Centos7使用systemd-tmpfiles-setup服务实现

        配置文件:

            /etc/tmpfiles.d/*.conf

            /run/tmpfiles.d/*.conf

            /usr/lib/tmpfiles.d/*.conf

    blob.png

    systemd-tmpfiles -clean|remove|create configfile

    

    任务计划:

        crontab命令定义:每个用户都有专用的cron任务文件

        crontab [option][-l|-r|-e][-i]

                -l:列出所有任务

                -e:编辑任务

                -r:移除任务

                -i:同-r一起使用,以交互模式移除指定任务

                -u user:仅 root可运行,指定用户管理cron任务

        控制用户执行任务计划:

            /etc/cron.{allow|deny}


    at和crontab共性和个性

    at和crontab都是用来做任务计划的

    at:一次性作业

    crontab:周期性作业

    blob.png

    没有被重定向的输出会被邮寄给用户

    根用户可以修改其他用户作业

    Tips:运行结果的标准输出和错误以邮件的形式通知给相关用户

         command &>/dev/null

         对于cron任务来说,%有特殊用途,如果在命令中要使用%,则需要转义,不过,如果把%放于单引号中,也可以不用转义


系统启动与内和管理

    linux: GNU/KERNEL

        kernel+rootfs

        kernel:进程管理,内存管理,网络管理,驱动程序,文件系统,安全功能

        rootfs:程序和glibc

        库:函数集合,function,调用接口(头文件负责描述)    

            过程调用:procedure,无返回值

            函数调用:function

        程序;二进制执行文件

    内核设计流派:

        单内核(monolithic kernel):linux

            把所有功能集成于同一个程序

        微内核(micro kernel):微软,solaris

            每种功能使用一个单独的子系统

    linux内核特点:

        支持模块化:.ko(内核对象)

            如:文件系统,硬件驱动,网络协议等

        支持内核模块的动态装载和卸载

    组成部分:

        核心文件:/boot/vmlinuz-version-release

        ramdisk:辅助的伪根文件系统

            centos5:/boot/initrd-version-release.img

            centos6,7:/boot/initramfs-version-release.img

        模块文件:/lib/modules/version-release

    blob.png

        注:#表示系统的默认启动级别,在/etc/inittab中进行设置

    Centos6启动流程:

        1)加载BIOS的硬件信息,获取第一个启动设备

        2)读取第一个启动设备MBR的引导加载程序(grub)的启动信息

        3)加载核心操作系统,核心开始解压缩,并尝试驱动所有硬件设备

        4)核心执行init程序,并获取默认的运行信息

        5)init程序执行/etc/rc.d/rc.sysinit文件

        6) 启动核心的外挂模块(/etc/modprobe.conf)

        7) init执行运行的各个批处理文件(scripts)

        8)init执行/etc/rc.d/rc.local

        9) 执行/bin/login程序,等待用户登录

        10)登录之后开始以shell控制主机

    启动流程:

        POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分,负责完成对cpu,主板,内存,硬盘子系统,显示子系统,串并行接口,键盘,CD-ROM光驱等硬件情况的检测

        ROM:BIOS,Basic Input  and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置,开机加电自检程序和系统启动自举程序等

        RAM:cmos互补金属氧化物半导体,保存各项参数的设定

        按次序查找引导设备,第一个有引导程序的设备为本次启动设备

    bootloader:引导加载器,引导程序

        windows:ntloader 仅是启动os

        linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本,把用户选定内核装载到内存中的特定空间中,解压,展开,并把系统控制权移交给内核

            lilo:linux loader    grub:grand unified bootloader

    MBR:

        446:bootloader  64:分区表   2:55AA

    GRUB:

        primary boot loader :1st stage 1.5stage

        secondary boot loader: 2nd stage 分区文件

    blob.png    

    kernel:

        自身初始化:

            探测可识别到的所有硬件设备

            加载硬件驱动程序(可能借助于ramdisk加载驱动)

            以只读方式挂载根文件系统

            运行用户空间的第一个应用程序:/sbin/init

     init程序的类型:

        Sysv:init,Centos 5 之前

            配置文件:/etc/inittab

        Upstart:init Centos 6

            配置文件:/etc/inittab  /etc/init.d/*.conf

        Systemd:systemd Centos 7

            配置文件:/usr/lib/systemd/system

                       /etc/systemd/system

        ramdisk:

            内核中的特征之一:使用缓冲和缓存来加速对磁盘上的文件访问

    blob.png

            ramdisk–>ramfs 提高速度

            Centos 5:initrd 工具程序:mkinitrd

            Centos 6:initramfs 工具程序:mkinitrd dracut

    系统初始化流程:

        POST–>BOOTSequence(BIOS)–>Bootloader(MBR)–>kernel(ramdisk)–>rootfs(只读)–>init(systemd)

    系统的几种运行级别:

        0:关机

        1:单用户模式(root自动登录)single 维护模式

        2:多用户模式,启动网络功能,但不启用NFS

        3:多用户模式,正常模式,文本界面

        4:预留级别,可同于3级别

        5:多用户模式,正常模式,用户界面

        6:重启

    blob.png

    默认级别;3,5

    切换级别:init #

    查看级别:runlevel,who -r 

    blob.png

    Centos 6 /etc/inittab和相关文件

        设置系统默认的运行级别

        id:3:initdefault:

    /etc/init/control-alt-delete.conf 

    blob.png

    使用control-alt-delete的组合键可以进行关机操作

    

    /etc/init/tty.conf

    blob.png

    复位tty终端设备

    

    /etc/init/start-ttys.conf

    blob.png

    如果runlevel是2,3,4其中的某个状态,则启动tty终端

    

    /etc/init/rc.conf

    blob.png

    系统运行级别的合理性

    

    /etc/init/prefdm.conf

    blob.png

    

    /etc/rc.d/rc.sysinit:系统初始化脚本

    blob.png

        1) 设置主机名

        2)设置欢迎信息

        3)激活udev和selinux

        4)挂载/etc/fstab文件中定义的文件系统

        5)检测根文件系统,并以只读方式重新挂载根文件系统

        6)设置系统时钟

        7)激活swap设备

        8)根据/etc/sysctl.conf文件设置内核参数

        9)激活lvm及software raid设备

        10)加载额外设备的驱动程序

        11)清理操作


    blob.png

    /etc/rc.d/rc#.d

    K##*:##表示运行次序,数字越小,越先运行,数字越小的服务,通常为依赖别的服务

    S##*:##表示运行次序,数字越小,越先运行,数字越小的服务,通常为被依赖的服务


    chkconfig命令:

        查看服务在所有级别的启动或关闭设定情况

        chkconfig [–list][name]

       blob.png        

 Sysv的服务脚本放置于/etc/rc.d/init.d(/etc/init.d)

        添加:chkconfig –add name

    

1、每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”


blob.png



2、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中


blob.png

        
















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

(0)
上一篇 2016-09-09 12:30
下一篇 2016-09-09 12:55

相关推荐

  • 关于大型网站技术演进的思考(十四)–网站静态化处理—前后端分离—上(6)

    原文出处: 夏天的森林   前文讲到了CSI技术,这就说明网站静态化技术的讲述已经推进到了浏览器端了即真正到了web前端的范畴了,而时下web前端技术的前沿之一就是前后端 分离技术了,那么在这里网站静态化技术和前后端分离技术产生了交集,所以今天我将讨论下前后端分离技术,前后端分离技术讨论完后,下一篇文章我将会以网站 静态化技术的…

    Linux干货 2015-03-03
  • 马哥教育21期网络班—第12周课程+练习—-LAMP练习

    1、请描述一次完整的http请求处理过程; (1) 建立或处理连接:接收请求或拒绝请求 (2) 接收请求: 接收来自于网络的请求报文中对某资源的一次请求的过程; 持久连接:接收到请求不会断开这个请求 非持久连接:一个连接请求断开一次 并发访问响应模型(Web I/O): 单进程I/O结构:启动一个进程处理用户请求,而且一次只处理…

    Linux干货 2016-09-26
  • 私有IP网子网掩码划分原则及计算方法

    私有IP网子网掩码划分原则及计算方法 最好记下的二进制转换十进制 00000000 0 00000001 1 00000010 2 00000100 4 00001000 8 00010000 16 00100000 32 01000000 64 10000000 128 11000000 192 11100000 224 11110000 240 1111…

    Linux干货 2017-05-02
  • LVM2 逻辑卷管理工具

    LVM2:  LVM: Logical Volume Manager, Version: 2  dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块; /dev/dm-#  /dev/mapper/VG_NAME-LV_NAME /dev/mapper/vol0-root /dev/VG_NAME/…

    Linux干货 2015-09-19
  • ☞SELinux

    ☞SELinux 概述 SELinux(Secure Enhanced Linux)是美国国家安全局(NSA)和SCC开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中。它能够限制权限,进程只能访问那些在他的任务中所需要文件。 Selinux是根据最小权限模型去限制进程在对象(如文件,目录,端…

    Linux干货 2016-09-18
  • 第七周:文件系统、raid、lvm和shell脚本练习

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@wlm ~]# fdisk /dev/sdb    #将/dev/sdb进行分区操作 D…

    Linux干货 2016-11-07

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-10 11:53

    总结的很完整,但是过于简略了哦,,而且分类也不够明确,建议这里进行标准化哦。