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 12:30
下一篇 2016-09-09 12:55

相關推薦

  • 基于ansible role實現LAMP平臺批量部署

    前言 作為運維人員,當面對幾十臺或上百臺服務器需要修改某個參數或部署某個平臺,你將從何入手呢?ansible的出現很好的解決了這一困擾,ansible基于Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。本文帶來的是基于Ansible Role…

    Linux干貨 2015-06-11
  • 8.1作業

    8月1日作業 創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser [root@localhost ~]# useradd -u 1234 -g bin -G root,ftp&…

    Linux干貨 2016-08-04
  • Linux系統命令格式及基礎命令、幫助信息。

    一、Linux系統上的命令使用格式 命令的語法通用格式:                 # COMMAND OPTIONS ARGUMENTS     &nb…

    Linux干貨 2016-10-30
  • 正則表達式和變量寫腳本

    #!/bin/bash 檢查系統所有用戶的shell是否為bash? 注釋:用grep查找是否有此類用戶,如果有則為真,則$?必然為0;顯示的passwd結果對我們沒意義,所以重定向到空。  grep “\bbash\b$” /etc/passwd &> /dev/null  A=`echo $?` …

    Linux干貨 2017-04-16
  • shell腳本編寫-1練習題

    1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小 #!/bin/bash echo “the hostname is:`hostname`” echo “the ip address is:`ifconfig | sed –n ‘2p’ |sed…

    Linux干貨 2016-08-15
  • 網絡管理

    1、集線器、交換機、路由器 2、路由器與交換機的主要區別體現在以下幾個方面: 1)工作層次不同:最初的的交換機是工作在OSI/RM開放體系結構的數據鏈路層,也就是第二層,而路由器一開始就設計工作在OSI模型的網絡層。由于交換機工作在OSI的第 二層(數據鏈路層),所以它的工作原理比較簡單,而路由器工作在OSI的第三層(網絡層),可得到更多的協議信息,路由器可…

    Linux干貨 2016-09-08

評論列表(1條)

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

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

欧美性久久久久