進程與計劃任務

PID 進程號,用來標記各個進程;CentOS6中起始的第一個進程為init
7中為systemd

進程優先級:

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

0-139(4,5中)

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

0-98,99(6中)

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

nice值:-2019,對應系統優先級100-13999

進程狀態:

運行:running;就緒:ready; 睡眠:可中斷——interruotable

不可中斷——uninterruptable

停止:stopped,暫停與內存,但不會被調度,除非手動啟動;僵死:zombie,結束進程,父進程結束前,子進程不關閉

Linux內核:搶占式多任務(多任務同時進行,交叉運行)

進程類型:

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

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

注意:兩者之間可以相互轉化

 

pstree -p(能查看編號) {}的為線程(thread)線程之間共享資源

ps 用來查看進程信息

支持三種選項:

UNIX選項 如 -A -e

BSD選項 a

GUN –help

默認顯示當前終端中的進程:

a 包含所有終端中的進程

x 包括不鏈接終端的進程

u 顯示進程所有者的信息

f 顯示進程的父進程

o 屬性顯示定制的信息 —— xao pid|%cpu|%mem|euid|ruid|ninice值)|pripriority|psrprocessorCPU編號)|rtprio(實時優先級)

aux(常用)

 

進程優先級

nice 命令

nice [option] [COMMAND [ARG]…]

nice -n 10 command

nice –6 command 賦予-6優先級

     renice命令

renice [-n] priority pid …

renice -9 pid 賦予-9優先級

搜索進程

預定義模式:pgrep

[option] pattern

-u uid : 生效者

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

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

-l :顯示進程名

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

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

pidof command 直接查看進程號

 

uptime 顯示當前系統時間、運行時間、幾個用戶登錄、平均負載(1、510分鐘的負載,一般不超過1

top 相當于windows的任務管理器,實時監控

-b 全部顯示

-d #:指定刷新時間間隔

-n # :刷新多少次后退出

首部信息的顯示:

uptime 信息 —— l

tasks及CPU信息 —— t

CPU信息單獨顯示 —— 1

us 用戶空間 sy 內核空間 ni 調整nice時間 id 空閑 wa 等待IO時間 hi 硬中斷 si 軟中斷 st 虛擬機偷走的時間

k 終止進程 由自己輸入想要終止的進程的進程號

w 將信息存到指定文件中——root下的.toprc

s 指定刷新時間間隔

 

htop 命令 更加方便

-d #:指定延遲時間

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

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

子命令

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

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

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

t:顯示進程樹

 

 

vmstat命令:虛擬內存信息 vmstat 1 10 1s刷新 刷新10次停止

si :相對于內存來說的,從磁盤讀數據交換到內存的數據速率

so :相對于內存來說的,從內存交換到磁盤的速率 ,內存不夠時調用swap

-s :顯示統計信息

 

iostat:統計CPU和設備IO信息

pmap: 進程對應的內存映射

-x:顯示詳細格式的信息

另外一種實現:cat /proc/PID/maps

 

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

服務器模式:

glances -s -B
IPADDR

IPADDR:指明監聽的本機的哪個地址

客戶端模式:

glances -c IPADDR

IPADDR:要連入的服務器端地址

dstat :系統資源統計

-c:顯示CPU相關信息

-C#,#,,total

-d:顯示disk相關信息

-D total,sda,sdb,

-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 kill -1 pid

2)信號完整名稱:例如——SIGHUP

3)信號的簡寫名稱:HUP

PIDkill [-SIGNAL] pid …

kill -n SIGNAL pid ; kill -s SIGNAL pid

按名稱 : killall [-sigal] comm…

按模式:pkill [options] pattern

-SIGNAL

-u uid : 生效者

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

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

-l :顯示進程名

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

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

 

 

 

 

后臺運行命令:

運行中的作業 : Ctrl +z

尚未啟動的作業:

COMMAND & ;

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

nohup COMMAND
&

screen;COMMAND

查看當前終端所有作業:

jobs ——可以看到JOB_NUM

作業控制 :

fg JOB_NUM:把指定的后臺作業調回前臺

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

kill %JOB_NUM :終止指定的作業

同時運行多個進程,提高效率

方法1

vim all.sh

f1.sh &

f2.sh &

f3.sh &

方法2

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

方法3

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

 

 

at 任務

7——systemctl is-enabled atd 查看at服務是否開機自動啟動

systemctl status
atd 目前是否處于啟動狀態

6——chkconfig –list atd 可用來查看不同模式下的狀態

service atd status
查看目前狀態

at 時間

at> 輸入指定命令

at>……

at> Ctrl +d 退出

ll /app 下是否生成了at.log文件
執行成功

輸入的指令的標準輸出不會在界面輸出,會以郵件的方式通知,但是廣播不會發送郵件,直接廣播通知

會生成下圖中的綠色文件,退出終端、重啟機器,計劃任務依舊會存在,執行完成后,刪除文件

進程與計劃任務

常用選項:

-V:顯示版本信息

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

-d #(atq 查看的編號或者at -l):刪除指定的作業;相當于atrm

-c:查看具體作業任務

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

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

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

time:定義出什么時候進行at這項任務

HH:MM(小時:分鐘)

noon , midnight ,teatime4pm),tomorrow

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

執行方式:

1、交互式 2、輸入重定向 3at -f 文件

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

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

黑名單:/etc/at.deny 默認存在,拒絕改文件中的用戶執行at命令,而沒有在at.deny文件中的使用者則可以執行

at.allow :優先級高,有此文件,deny無效,只有此文件里的用戶可以使用at

at.deny:優先級低

如果都沒有,普通用戶全都拒絕使用at


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

相關的你程序包:

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

cronie-anacron:cronie的補充程序,用于監控cronie任務執行狀況,如cronie中的任務在過去該運行的時間點未能正常運行,則anacron會隨后啟動一次此任務

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

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

/etc/crontab

man 5 crontab 查看幫助

用戶cron任務:

crontab命令

日志:/var/log/cron

vim /etc/crontab (系統計劃任務)

進程與計劃任務

每個不同時間之間 空格隔開彼此

時間表示法

1、特定值

給定時間點有效取值范圍內的值

2、* 給定時間點上有效取值范圍內的所有值,表示…”

3、離散取值: # # #

4、連續取值 : #—#

5、在指定時間范圍上,定義步長

/# :#即為步長 例如:在分鐘 */2 表示為每2分鐘

日期與星期:

* * 10,20 * 0,6 之間的關系是或的關系,即每月的10號,20號,或者周六周日執行,且的關系時,可以用腳本來過濾星期

* * 10,20 * * 此為每月的10號和20

關鍵字:

@reboot 重啟之后執行

@yearly 0 0 1 1 *

@annually 0 0 1 1 *

@monthly 0 0 1 * *

@weekly 0 0 * * 0

@daily 0 0 * * *

@hourly 0 * * * *

示例:每3小時echowall命令

0 */3 * * * root
/bin/echo “howdy”; /usr/bin/wall “welcome to magedu!”

 

注意:運行結果的標準輸出和錯誤以郵件通知各相關用戶

1、COMMAND > /dev/null ;2、COMMAND
&> /dev/null(
或者 > /dev/null 2>&1)

對于cron任務來說,%有特殊用途;如果在命令中要使用%,則需要轉義,將%放置于單引號中,則可不用轉義

系統的計劃任務:

/etc/crontab

/etc/cron.d/ 配置文件

/etc/cron.hourly/ 腳本

/etc/cron.daily/ 腳本

/etc/cron.weekly/ 腳本

/etc/cron.monthly/ 腳本

普通用戶的計劃命令存放位置:

/var/spool/cron/

 

anacron系統:

/etc/anacrontab 配置文件,負責執行/etc/cron.daily /etc/cron.weekly/
/etc/cron.monthly
中的系統任務

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

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

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

字段4、要執行的任務

/etc/cron.hourly/0anacron執行

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

管理臨時文件:

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

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

配置文件:

/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

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

/var/spool/cron/USERNAME

crontab 命令;

-l :列出所有任務;

-r:移除所有任務

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

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

創建、編輯計劃任務 : crontab -e -u wang wang用戶的身份執行,不謝就以自身執行)

不用寫用戶,直接寫時間和命令

e EDITOR 默認使用vi 可以用export EDITOR=vim 則編輯的時候為vim編輯器

vipw 相當于 vi /etc/passwd

控制用戶執行計劃任務:

/etc/cron.{allow,deny}
之前已經設置的某用戶的任務,將用戶放在deny中,該任務依舊執行

若是不小心刪除,恢復 可在 /etc/log/cron的日志中查看 執行的命令

任務執行實現秒級:

* * * * * for min
in 0 1 2 ; do echo “hi” ; sleep 20 ; done 實現每20s執行一次

sleep命令:

sleep # s/m/h/d (秒/分鐘/小時/天)
默認為s

 

cat sysstat 系統自定義的生成的日志

 

 

 

原創文章,作者:Immortals、zcy,如若轉載,請注明出處:http://www.www58058.com/75574

(0)
Immortals、zcyImmortals、zcy
上一篇 2017-05-14 20:10
下一篇 2017-05-14 20:53

相關推薦

  • sed和awk的用例及pam安全措施-第十五周

    總結sed和awk的詳細用法; sed用法 sed(Stream EDitor)是一款流編輯器,用來對文本進行過濾與替換操作。其原理是:通過文件或管道讀取文件內容,但是sed默認并不直接修改源文件,而是一次僅讀取文件的一行至模式空間(pattern space)根據sed指令進行編輯并輸出結果后清除模式空間,即所有的操作都是在模式空間中進行的。 語法格式 s…

    2017-06-05
  • python裝飾器詳解

    python之裝飾器詳解 一、裝飾器定義 定義一個函數,可以接受一個函數作為參數,對該函數進行一些包裝,不改變函數的本身。 二、裝飾器四部曲(分解) 1、函數可賦值給變量。若賦值給變量的是調用后的函數,變量的值就是return的返回值。 切記:函數賦值給變量,只看return的值。分清楚函數是處于調用狀態還是未被調用狀態。若函數沒有寫return,默認ret…

    2017-02-08
  • php5.4zend-opcache安裝

    公司在做高并發壓測,fastcgi,apc,ocache,opcache, 幾經考慮,最終考慮用opcache,因為作為 zend-opcache合并為php5.5的分支版本,xcache的前途堪慮, 在環境的安裝上竟然折騰了半個下午沒有搞定,這個作下問題記錄。 先說安裝, http://php.net/manual/zh/opcache.installat…

    2015-04-20
  • 第一周作業

    描述計算機的組成及其功能。 由馮~諾伊曼提出計算機體系結構,計算機主要由控制器、運算器、存儲器、輸入設備、輸出設備五大硬件組成。 控制器(Controller):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。 運算器(Datapath):運算器的功能是對數據進…

    Linux干貨 2017-02-07
  • zabbix報警信息提取

    zabbix報警信息提取     在日常的監控中,我們除了日常的zabbix操作外,我們有的時候還涉及到與其他公司進行數據對接。由于別的公司的數據對接很多時候并不是按照zabbix的數據結構(尤其是大型廠家,或是專業監控廠家,并不會直接使用zabbix,多數是自己開發或是對其他監控軟件進行二次開發之類),在這種需求基礎…

    Linux干貨 2015-12-19
  • LAMP分離環境的搭建(最新版本的mysql+php+http源碼編譯安裝)

    實驗者:FrankStar      實驗日期:20150628 任務:主要是實現在Linux環境下配置LAMP環境,利用VMware+centos6.4實現,將LAMP分離為多臺主機; 附注:由于大家的環境不一樣,可能有些人已經安裝了這個包或者那個軟件,所以調試的環境結果也不一樣,為了盡量能模擬到 可能出現的所有問題,在編譯會…

    Linux干貨 2015-06-30
欧美性久久久久