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.www58058.com/44724

(0)
Stupid_LStupid_L
上一篇 2016-09-09
下一篇 2016-09-09

相關推薦

  • linux如何獲取幫助以及基礎目錄命名標準

    一、linux的命令分為兩種,一種是內建命令,即包含在shell當中的,一種是外部命令,通常保存在 bin目錄中。 1、對于內部命令:  通常使用 help COMMAND 2、對于外部命令:  通常使用 man command  mannul的位置/usr/share/man man的內容通常分為以下幾塊   1、N…

    Linux干貨 2016-10-30
  • chrony、sudo、rsyslog

    chrony 程序環境: 配置文件:/etc/chrony.conf 主程序文件:chronyd 工具程序:chronyc unit file: chronyd.service 配置文件:chrony.conf server:指明時間服務器地址; allow NETADD/NETMASK allow all:允許所有客戶端主機; deny NETADDR/N…

    Linux干貨 2017-06-13
  • Linux系統進程管理

    本章學習內容     ——進程概念     ——進程創建、切換和撤銷     ——進程調度     ——進程分類     ——進程狀態 &n…

    Linux干貨 2016-09-13
  • 網卡別名與多網卡綁定

    網卡別名 一塊網卡可以配置多個ip地址,叫做網卡別名   對虛擬主機有用 格式形如:eth0:1  eth0:2 …… 實現方法:   在命令行中臨時設置: ifconfig 命令: ifconfig eth0:0 192.168.1.100/24 演示:   修改配置文件 在/etc/sysconfig/networ…

    Linux干貨 2016-09-05
  • Hello World

    隨筆

    Linux干貨 2018-03-26
  • 文本處理

    1 、查出分區空間使用率的最大百分比值   2、查出用戶UID最大值的用戶名、UID及shell類型   3、查出/tmp的權限,以數字方式顯示   4、統計當前連接本機的每個遠程主機IP的連接數,并按從大到小排序 5、顯示/proc/meminfo文件中以大小s開頭的行;(要求:使用兩種方式) 6、顯示/etc/passwd文…

    Linux干貨 2016-08-08

評論列表(1條)

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

    總結的很完整,但是過于簡略了哦,,而且分類也不夠明確,建議這里進行標準化哦。

欧美性久久久久