進程和計劃任務

進程概念

內核的功用:進程管理,文件系統,網絡功能,內存管理,驅動程序,安全功能等

Process:運行中的程序的一個副本,是被載入內存的一個指令集和

    進程ID(Process ID,PID)號碼被用來標記各個進程

    UID,GID和SELinux語境決定對文件系統的存取和訪問權限

    通常從執行進程的用戶來繼承

    存在生命周期

task struct:linux內核存儲進程信息的數據結構格式

task list:多個任務的task struct組成的鏈表

進程創建:

    init:第一個進程

        父子關系(之后的都是其子進程)

    進程:都由其父進程創建,CoW(寫時復制)

進程優先級

    系統優先級:數字越小,優先級越高

        0-139(CentOS4,5)

            各有140個運行隊列和過期隊列

        0-98,99(CentOS)

    實時優先級:99-0:值最大優先級最高

    nice值:-20到19,對應系統優先級100-139或者99(-20最大,19最小)

Big O:時間復雜度,用時和規模的關系

    O(1), O(logn), O(n) 線性, O(n^2) 拋物線, O(2^n)

進程內存:

    Page Frame:頁框,用存儲頁面數據,存儲Page 4k

    LRU:Least Recently Used 近期最少使用算法,釋放內存

    物理地址空間和線性地址空間

    MMU:Memory Management Unit負責轉換線性和物理地址

IPC:Inter Process Communication

    同一主機上

        signal    

        shm:shared memory

        semophore 信號量,一種計數器

    不同主機上:

        rpc:remote procedure call

         socket: IP和端口號

linux內核:搶占式多任務

進程類型:

    守護進程:daemon,在系統引導過程中啟動的進程,和終端無關進程

    前臺進程:跟終端相關,通過終端啟動的進程

    注意:兩者可相互轉化

進程狀態:

    運行態:running

    就緒態:ready

    睡眠態:

        可中斷:interruptable    

        不可中斷:uninterruptable

    停止態:stopped,暫停與內存中,但不會被調度,除非手動啟動

    僵死態:zombie,結束進程,父進程結束前,子進程不關閉


系統管理工具

進程的分類:

    CPU-Bound:CPU密集型,非交互

    IO-Bound:IO密集型,交互式

linux系統狀態的查看及管理工具:

    pstree,ps,pidof,pgrep,top,htop,glance,pmap,vmstat,dstat,kill

pkill,job,bg,fg,nohup


pstree命令

pstree:以樹狀圖的方式展示進程之間的派生關系,顯示效果比較直觀

blob.png

-p:顯示當前使用進程的進程號和進程ID

blob.png

-a:顯示所有進程的詳細信息,遇到相同的進程可以壓縮顯示

blob.png

ps命令

ps命令用于報告當前系統的進程狀態??梢源钆鋕ill指令隨時中斷,刪除不必要的程序。ps命令是最基本同時也是非常強大的進程查看命令,使用該命令可以確定有哪些進程正在運行和運行的狀態,進程是否結束,進程有沒有僵死,那些進程占用了過多的資源等等,總之大部分信息都是可以通過執行該命令得到的

Linux系統各進程的相關信息均保存在/proc/PID目錄下的個文件中

支持三種選項:

    UNIX選項 如-A -e

    BSD選項  如 a

    GUN選項 如 –help

默認顯示當前終端的進程

    a:包括所有終端中進程

    x:包括不鏈接終端的進程

    u:顯示進程屬主的信息

    f:顯示進程的父進程

blob.png

    o 屬性..:顯示定制的信息

        屬性:pid,comm,%cpu,%mem,state,tty,euser,ruser

blob.png

VAZ:Virtual memory SiZe,虛擬內存集,線性內存

RSS:ReSident Size,常駐內存集

STAT:進程狀態

    R:running運行態

    S:interrupatable sleeping (睡眠態可中斷)

    D:uninterrupatable sleeping(睡眠態不可中斷)

    T:stopped 停止態

    Z:zombie 僵死態

    +:前臺進程

    l:多線程進程

    N:低優先級進程

    <:高優先級進程

    s:session leader,會話(子進程)發起者


常用組合:-ef

    -e:顯示所有進程

    -f:顯示完整格式程序信息

blob.png

常規格式:-eFH

    -F:顯示更完整格式的進程信息

    -H:以進程層級格式顯示進程相關信息

blob.png

常用格式:自定義

ni:nice值

pri:priority 優先級

psr:procrssor CPU編號

rtprio:實時優先級

      -eo pid,tid,clss,rtprio,ni,pri,psr,pcpu,stat,comm

blob.png

    axo atat,euid,ruid,tty,tpfid,sess,pgrp,ppid,pid,pcpu,comm

blob.png

pgrep命令

pgrep命令以名稱為依據從運行進程中隊列中查找進程,并顯示查找到的進程ID,每一個進程ID以一個十進制數表示,通過一個分隔符

和下一個ID分開,默認分隔符為一個新行。對于每一個屬性選項,用戶可以在命令上指定一個以逗號分隔的可能值的集合

選項:

    -u uid :effective user,進程生效者

    -U uid:real user,真正發起運行命令者

    -t terminal:與指明終端相關的進程

    -l:顯示進程名

     -a:顯示完整格式的進程名

    -p pid:顯示指定進程的子進程

按確切的程序名稱:/sbin/pidof

blob.png

blob.png

uptime

顯示當前時間,系統 已啟動的時間、當前上線人數,系統平均負載(1 、5 、10 分鐘的平均負載,一般不會超過1) )

blob.png

系統平均負載:

    指在特定時間間隔內運行隊列中的平均進程數 。

如果 每個CPU 內核的當前活動進程數不大于3 的話,那么系統的 性能良好。 如果每個CPU 內核的任務數大于5 ,那

么這臺機器的性能有嚴重問題。

如果linux 主機是1 個雙核CPU 的話,當Load Average為6的時候說明機器已經被充分使用了。

top

實時動態地查看系統的整體運行情況,是一個綜合了多方信息監測系統性能和運行信息的實用工具,通過top命令所提供的互動式界面,

可以用熱鍵進行管理。

blob.png

top有許多內置命令

排序:

    P:以占據的CPU百分比,%CPU

    M:占據內存百分比。%MEM

    T:累積占據CPU時長,TIME+

首部信息顯示:

    uptime信息:l命令

    task及cou信息:t命令

    cpu分別顯示:1(數字)

    memory信息:m命令

退出命令:q

修改刷新時間間隔:s

終止指定進程:k

保存文件:W

欄位信息簡介

us:用戶空間

sy:內核空間

ni:調整nice時間

id:空閑

wa:等待IO時間

hi:硬中斷

si:軟中斷(模式切換)

st:虛擬機偷走的時間

blob.png

欄位信息間接

PID (Process Id): 任務的進程ID

PPID (Parent Process Pid): 父任務的進程ID

RUSER (Real User Name): 任務的所有者真實名稱

UID (User Id): 任務所有者ID

USER (User Name): 任務所有者名稱

GROUP (Group Name): 任務所有者群組名

TTY (Controlling Tty): 終端

PR (Priority): 優先級

%CPU (CPU usage):CPU 使用率

%MEM (Memory usage (RES)): 內存使用率

S (Process Status): 進程狀態

TIME+ (CPU Time, hundredths):CPU

blob.png

選項:

    -d #:指定刷新時間間隔,默認為3秒

    -b:以批次方式

    -n #:顯示多少批次

blob.png

htop命令(需Fedora-EPEL安裝)

blob.png

選項:

    -d #:指定延遲時間

    -u UserName:僅顯示指定用戶的進程

    -s COLUME:以指定字段進行排序

交互式子命令:

各種使用命令在交互式界面都有顯示,就不介紹了,一目了然!

    s:跟蹤選定進程的系統調用;

blob.png

    l:顯示選定進程打開的文件列表

blob.png

    a:將選定的進程綁定之某指定CPU核心

    t:顯示進程樹

blob.png

內存工具

vmstat命令:虛擬內存信息,可以報告關于進程,內存,I/O等系統整體運行狀態

vmstat 2 5 (沒2秒顯示一次,共顯示五次)

blob.png    

字段說明:

procs(進程)

    r:運行隊列中進程數量,這個值也可以判斷是否需要增加CPU(如長期大于1)

    b:等待IO的進程數量

memory(內存)

    swpd:使用虛擬內存大小,如果swpd的值不為0,但是SI,SO的值長期為0,這種情況不會影響系統性能

    free:空閑物理內存大小

    buff:用作緩沖的內存大小

    cache:用作緩存的內存大小,如果cache的值大的時候,說明cache出的文件多,如果頻繁訪問到的文件

        都能被cache處,那么磁盤讀IO bi會非常小

swap

    si:每秒從交換區寫到內存的大小,由磁盤調入內存

    so:每秒寫入交換區的內存大小,由內存調入磁盤

IO(現在的Linux版本塊大小為1kb)

    bi:每秒讀取的塊數

    bo:每秒寫入的塊數

system(系統)

    in:每秒中斷數,包括時鐘中斷

    cs:每秒上下文切換數(進程切換頻率)

注意:此二選值越大,會看到內核消耗的CPU時間會越大

CPU(以百分比表示)

    us:用戶進程執行時間按百分比(user time)

us的值比較高時,說明用戶進程消耗CPU時間多,但是如果長期超過50%的使用,那么或許就該考慮優化程序算法

或者進行加速了

    sy:內核系統進程執行時間百分比(system time)

sy的值高時,說明系統內核消耗的CPU資源多,這并不是良性表現,應該檢查下原因

    wa:IO等待時間的百分比

wa的值高時,說明IO等待比較嚴重,這可能由于磁盤大量隨機訪問造成,也有可能磁盤出現瓶頸(塊操作)

    id:空閑時間百分比

    st:Time stolen from a virtual machine. 2.6.11 前, unknown.

選項

    -a:顯示活動內頁

    -f:顯示啟動后創建的進程總數

    -m:顯示slab信息

    -n:頭信息僅顯示一次

    -s:以表格方式顯示時間計數器和內存狀態

    -d:報告磁盤狀態

    -p:顯示指定的磁盤分區狀態

    -S:輸出信息的單位(k,K,m,M)

pmap命令

    用于報告進程的內存映射關系,是Linux調試及運維的一個很好的工具

選項

    -x:顯示擴展格式

    -d:顯示設備格式

    -q:不顯示頭尾行

    -v:顯示指定版本

blob.png


系統監控工具

glances命令(EPEL安裝)

blob.png

 glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [–password] [-t refresh] [-f file] [-o output]

命令選項:

    -b:顯示網絡連接速度Byte/秒

    -B @IP|HOST:綁定服務器端IP地址或者主機名稱

    -c @IP|HOEST:連接glances服務器端

    -C file:配置文件路徑默認位置為/etc/glances/glances.conf 

    -d:關閉磁盤I/O模塊

    -e:顯示傳感器溫度

    -f file:設置輸出文件(格式為HTML或者CSV)

    -m:關閉掛載的磁盤模塊

    -n:關閉網絡模塊

    -p PORT:設置客戶端/服務器運行端口(默認為61209)

    -P PASSWORD:設置客戶端/服務器密碼

    -s:設置glances運行模式為服務器

    -t SECONDS :設置屏幕刷新的時間間隔,單位為秒(默認為3秒),范圍為1-32767

    -h:顯示幫助信息

    -v:顯示版本信息

    -1:每個CPU的相關數據單獨顯示

glances命令的交互式界面和top命令的相似,操作方法也是類似的,顯示字段意義如下:

    CTRT:虛擬內存大小

    RES:進程占用的物理內存值

    %CPU:該進程占用的CPU使用率

    %MEM:該進程占用的物理內存和總內存的百分比

    PID:進程ID號

    USER:進程所有者的用戶名

    TIME+:該進程啟動后占用的總的CPU時間

    IO_R和IO_W:進程那個的讀寫I/O速率

    NAME:進程名稱

    NI:進程優先級

    S:進程狀態,其中S表示休眠,R表示正在運行,Z表示僵死狀態

 blob.png

交互式界面下可以使用的快捷鍵的功能如下:

    h:顯示幫助信息

    q:離開程序退出

    c:按照CPU實時負載對系統進程進行排序  

    m:按照內存使用狀況對系統進程排序

    i:按照I/O使用狀況對系統進程排序

    p:按照進程名稱排序

    d:顯示磁盤讀寫狀況

     w:刪除日志文件

    l:顯示日志

    1:每個CPU的相關數據單獨顯示

    s:顯示傳感器信息

    f:顯示系統信息

在C/S模式下運行glances命令

服務模式:

    glances -s -B IPADDR 指明監聽的本機哪個地址

blob.png

客戶端模式

    glances -c IPADDR 指明要連入的服務器端地址 

  

dstat命令:系統資源統計

blob.png

dstat [-afv] [options…] [delay [count]]

    -c:顯示cpu相關信息

        -C #,#,…,total

    -d:顯示dick相關信息

        -D total,sda,sdb,…

    -g:顯示page相關統計數據

    -m:顯示memory相關統計數據

    -n:顯示network相關統計數據

    -p:顯示process相關統計數據

    -r:顯示IO請求相關的統計數據

    -s:顯示swapped相關的統計數據

blob.png

–tcp

–udp

–unix

–raw

–socket

–ipc

–top-cpu:顯示最占用CPU的進程

–top-io:顯示最占用io的進程

–top-men:顯示最占用內存的進程

–top-latency:顯示延遲最大的進程

blob.png

備注:如果要組合使用,后面四項須放在最后

blob.png

kill命令

    向進程發送控制信號,以實現對進程管理

    顯示當前系統可用信號:kill -l

blob.png    

1)SIGHUP:無須關閉進程而讓其重讀配置文件

2)SIGINT:終止正在運行的進程;相當于Ctrl+c

9)SIGKILL:殺死正在運行的進程

15)SIGTERM:終止正在運行的進程

18)SIGCONT:繼續運行

19)SIGSTOP:后臺休眠

指定信號的方法:

1.信號的數字標識;1,2,9….

2.信號完整名稱;SIGHUP

3.信號的簡寫名稱;HUP

blob.png

按PID:kill [-SIGNAL] pid

按名稱:killall [-SIGNAL] comm….

按模式:pkill [options] pattern 按照進程名殺死進程。

    -SIGNAL

    -u uid:effective user,生效者

    -U uid:real user,真正發起運行命令者

    -t terminal:與指定終端相關的進程

    -l:顯示進程名

    -a:顯示完整格式的進程名

    -P pid:顯示父進程為此處指定的進程的進程列表


作業管理

Linux的作業控制

    前臺控制:通過終端啟動,且啟動后一直占據終端

    后臺作業:可通過終端啟動,但啟動后即轉入后臺運行(釋放終端)

如何讓作業運行于后臺

    1.運行中的作業:Ctrl+z

    2.尚未啟動的作業:command &

后臺作業雖然被送往后臺運行,但其依然與終端相關;退出終端,將關閉后臺作業。如果希望送往后臺

后,剝離與終端的關系

此處的ping隨便有顯示輸出,但是已經是后臺進程了 ,所以使用Ctrl+c無法終止的,正常執行ping命令是可以

使用Ctrl+c終止的

blob.png   

查看所有作業:

    jobs

作業控制:

    fg [[%]JOB_NUM] :把指定的后臺作業調回前臺;

   bg [[%]JOB_NUM] :讓送往后臺的作業在后臺繼續運行;

   kill [%JOB_NUM] :終止指定的作業;

將剛才ping命令調回前臺后可以Ctrl+c終止了

blob.png

并行運行

方法一:

vi all.sh

f1.sh&

f2.sh&

f3.sh&

方法二

(f1.sh&);(f2.sh&);(f3.sh&);

方法三

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

blob.png

blob.png

進程優先級

    靜態優先級:100-139

    進程默認啟動時的nice值為0,優先級為120

    只有根用戶才能降低nice值(提高優先級)


nice命令:用于以指定的進程調度優先級啟動其他的程序

    nice [OPTION] [COMMAND [ARG]…]

renice 命令:

    renice [-n] priority pid..

查看:

    ps axo pid,comm,ni

blob.png


任務計劃

Linux任務計劃,周期性任務執行

未來的某時間點執行一次任務

at

at命令用于在指定時間執行命令。at允許使用一套相當復雜的指定時間的方法。它能夠接受在當天的hh:mm(小時:分鐘)式的時間指定。

假如該時間已過去,那么就放在第二天執行。當然也能夠使用midnight(深夜),noon(中午),teatime(飲茶時間,一般是下午4點)

等比較模糊的 詞語來指定時間。用戶還能夠采用12小時計時制,即在時間后面加上AM(上午)或PM(下午)來說明是上午還是下午。 

也能夠指定命令執行的具體日期,指定格式為month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。

指定的日期必須跟在指定時間的后面。

也可使用相對計時發,這對于安排不久就要執行的命令是有很好用處的。指定格式為now + count time,now是指當前時間,time是時間單位,

這里可以是mintues(分鐘),hours(小時),days(天),weeks(星期)。count是時間的數量。還可以直接使用today,tomorrow來指定

完成命令的時間。

at [option] TIME

常用選項:

    -V:顯示版本信息

    -l:列出指定隊列中等待運行的作業;相當于atq

blob.png

    -d:刪除指定的作業;相當于atrm

    -c:查看具體作業任務

    -f /path/from/somefile:從指定的文件中讀取任務

    -m:當任務被完成之后,將給用戶發送郵件,即使沒有標準輸出

注意:作業執行命令的結果中的標準輸出和錯誤以郵件通知給相關用戶

blob.png

blob.png

執行結果:

blob.png

TIME:定義出什么時候進行at這選任務的時間

    HH:MM[yyyy-mm-dd]

    noon,midnight,teatime(4pm)tomorrow

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

at時間格式  

HH:MM 02:00

在今日的 HH:MM 進行,若該時刻已過,則明天此時執行任務

HH:MM YYYY-MM-DD 04:00 2016-09-20

規定在某年某月的某一天的特殊時刻進行該項任務

HH:MM[am|pm] [Month] [Date]

    04pm March 17

    17:20 tomorrow

HH:MM[am|pm] + number [minutes|hours|days|weeks]

在某個時間點再加幾個時間后才進行該項任務

    now + 5 minutes

    04pm + 3 days

執行方式:

    1)交互式 2向 )輸入重定向 3 )at –f  文件

依賴與atd 服務, 需要啟動才能實現at 任務

at 隊列存放在/var/spool/at 目錄中

/etc/at.{allow,deny} 控制用戶是否能執行at 任務

    白名單:/etc/at.allow  默認不存在,只有該文件中的用戶才能執行at 命令

     黑名單:/etc/at.deny 行 拒絕該文件中用戶執行 at 命令, 而沒有在 在at.deny

文件中的使用 者則可執行

    如果兩個文件都不存在有 ,只有root行可以執行at 

注意事項:

    以下不包含root用戶

    白名單優先級高于黑名單

    當白名單文件生成后,不在白名單的用戶都沒權限使用at了

    沒有白名單文件時,在黑名單的用戶都沒權限使用at

    如果白名單和黑名單文件都不存在,則是任何人都沒權限使用at 

batch:系統自行選擇空閑時間去執行此處指定的任務


周期性運行某任務cron

    相關的程序包:

    cronie:主程序包,提供crond守護進程及相關輔助工具

    cronie-anacron:cronie的補充程序;用于監控cronise任務執行狀況;

如cronie中的任務在過去該運行的實際帶你未能正常運行,則anacron會隨后啟動一次此任務

    crontabs:包含CentOS提供系統維護任務


計劃任務

確保crond守護處于運行狀態:

    CentOS 7 :

        systemctl status crond

blob.png

    CentOS 6 :

        service crond status

blob.png

計劃周期性執行的任務提交給crond,到指定時間會自動運行

    系統cron任務:系統維護作業

        /etc/crontab

    用戶cron任務:

        crontab

日志:/etc/log/cron

系統cron 任務:/etc/crontab

注釋行以 # 開頭

詳情參見 man 5 crontab

# Example of job definition:

# .—————- minute (0 – 59)

# | .————- hour (0 – 23)

# | | .———- day of month (1 – 31)

# | | | .——- month (1 – 12) OR jan,feb,mar,apr …

# | | | | .—- day of week (0 – 6) (Sunday=0 or 7) OR

sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

blob.png

時間表示法:

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.horuly/  腳本

/etc/cron.daily/   腳本

/etc/cron.weedly/ 腳本

/etc/cron.monthly/  腳本


anacron系統

運行計算機關機時cron 不運行的任務, ,CentOS6 以后 版本取消

    anacron 服務,由crond 服務管理。

假設計算機沒有一直開機

對筆記本電腦、臺式機、工作站及其它不一直開機的系統很重要

對偶爾要關機的服務器很有用

配置文件:/etc/anacrontab ,負責執行/etc/ cron.daily

    /etc/cron.weekly /etc/cron.monthly 中系統任務。

    /etc/cron.hourly/ 由/cron.d/0hourly 執行

       字段1 :如果在這些日子里沒有運行這些任務……

       字段2 :在重新引導后等待這么多分鐘后運行它

      字段3 :任務識別器,在日志文件中標識

       字段4 :要執行的任務

當執行任務時,更新/var/spool/anacron/ 中文件的時間戳

管理臨時文件

CentOS6使用/etc/cron.daily/tmpwatch定時清除臨時文件

CentOS7使用systemd-tmpfiles-setup服務實現

配置文件:

/etc/tmpfiles.d/*.conf

/run/tmpfiles.d/*.conf

/usr/lib/tmpfiles/*.conf

/usr/lib/tmpfiles.d/tmp.conf

    d /tmp 1777 root root 10d

    d /var/tmp 1777 root root 30d

命令:

    systemd-tmpfiles –clean|remove|create configfile


計劃任務

用戶cron: :

crontab 命令定義,每個用戶都有專用的cron 任務文件:

    /var/spool/cron/USERNAME

crontab 命令:

    crontab [-u user] [-l | -r | -e] [-i]

        -l:  列出所有任務;

blob.png

        -e:  編輯任務;

blob.png

        -r:  移除所有任務;

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

        -u user:  僅root 可運行,指定用戶管理cron 任務

控制用戶執行計劃任務 :

    /etc/cron.{allow,deny}

allow是白名單,dengy是黑名單

    以下不包含root用戶

    白名單優先級高于黑名單

    當白名單文件生成后,不在白名單的用戶都沒權限使用了

    沒有白名單文件時,在黑名單的用戶都沒權限使用

    如果白名單和黑名單文件都不存在,則是任何人都沒權限使用 

at和crontab比較

一次性作業使用at

重復性作業使用crontab

blob.png

備注:沒有被重定向的輸出或被mail給用戶

    root用戶能夠修改其他用戶的作業

    運行結果的標準輸出和錯誤會以郵件的通知給相關用戶

        1.command > /dev/null

        2.command &> /dev/null

   對于cron任務來講,%有特殊用途;如果在命令中要使用%,需要轉義;但是如果把%放置在單引號中,

可以不用轉義。

練習

1 、每天的2 點和12 點整,將/etc 備份至/testdir/backup目錄中,保存的文件名稱格式為“etcbak-yyyy-mm-dd-HH.tar.xz”

    使用crontab -e命令 編輯,輸入命令

0 2,12 * * *  /usr/bin/tar -Jcf  /testdir/backup/etcbak-`date +\%F-%\d`.tar.xz  /etc/

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

    使用crontab -e命令 編輯,輸入命令

0 23 * * 2,4,7 /usr/bin/cp -a /var/log/messages  /logs/messages-`date +\%Y\%m\%d`

3 、每兩小時取出當前系統/proc/meminfo 文件中以S 或M開頭的信息追加至/tmp/meminfo.txt 文件中

     使用crontab -e命令 編輯,輸入命令

0 */2 * * *  /usr/bin/grep "^[SM].*" /proc/meminfo  >>/tmp/memuinfo.txt

4 、工作日時間,每10 分鐘執行一次磁盤空間檢查,一旦發現任何分區利用率高于80% ,就執行wall

    使用crontab -e命令 編輯,輸入命令

*/10 * * * *  /root/bin/test.sh

test.sh腳本如下

  1 #!/bin/bash
  2 
  3 disk=`df |grep "sd"|egrep -o "[[:digit:]]*%"|cut -d "%" -f1|sort -n|tail -n1`
  4 
  5 [[ $dick -gt 80 ]]&&wall "dick will be full"

blob.png

blob.png




原創文章,作者:qiuwei,如若轉載,請注明出處:http://www.www58058.com/44654

(0)
qiuweiqiuwei
上一篇 2016-09-13 15:19
下一篇 2016-09-13 15:32

相關推薦

  • lamp安裝配置詳細過程(把以前的筆記貼上來)

    準備; 首先進入/usr/local/目錄 #cd /usr/local 刪除所有安裝過的php mysql apache 以及libxml 首先查看目前 /usr/local目錄下面的內容 #ls –l 如果看到php5 php apache2 apache mysql mysql5 libxml libxml2字樣的目錄都將其刪除具體命令如下 #rm –…

    Linux干貨 2015-05-01
  • N22-妙手-第一周博客作業

           描述計算機的組成及其功能 1946年馮諾依曼提出馮 諾依曼結構,也稱普林斯頓結構,即一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。根據他的結構,計算機組成是: (1)運算器:負責數據的算術運算和邏輯運算 (2)控制器:  負責對程序信息和數據進行分析,控制并協調其輸…

    Linux干貨 2016-08-15
  • N25-第11周博客作業

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 第一步:他們需要實現協商好對稱加密算法,單向加密算法,公鑰加密算法,交換公鑰等。 第二步:B用戶想要將數據傳給A,首先需要使用單向加密算法取出數據的特征碼,并用自己的私鑰對這段特征碼進行加密(數字簽名),B用戶生成臨時對稱密鑰,并用對稱密鑰加密整段數據,B用戶使用 A用戶的公鑰加密一次性對稱密鑰,附加在整段數據…

    Linux干貨 2017-05-21
  • 高級文件文件系統管理之btrfs系統

    一.概述 btrfs文件系統:     技術預覽版     btrfs (B-tree,Butter FS,Better FS),GPL,Oracle,2007,CoW     ext3/ext4,xfs 核心特性:  &nbsp…

    Linux干貨 2016-09-11
  • 用戶權限

    一、用戶和組的主要配置文件
    二、用戶管理命令
    三、組管理命令
    四、查看用戶相關的ID信息
    五、切換用戶或以其他用戶身份執行命令

    2018-03-13
  • shell腳本編程初步–吐血整理

    shell腳本編程 編程基礎 程序: 程序的構成:指令 + 數據 程序的編程風格:     過程式:以指令為中心,數據服務于指令     對象式:以數據為中心,指令服務于數據 shell程序:提供了編程能力,解釋執行 shell,perl,python語言均為高級編程語言 編程的邏輯處理方式: &n…

    Linux干貨 2016-08-18
欧美性久久久久