進程與計劃任務詳解

時光匆匆,王老師代兩周的課就這樣結束了,剛適應王老師的講課風格。王老師講課進度非???,能按照自己的思路把上課的內容每一個地方都貫徹下去。我覺得這樣是非常好的,但是筆記方面還是南老師做的詳細,各有各的風格吧。今天我們將要給大家介紹進程與計劃任務,對我們的以后工作有非常大的幫助,因為我們以后工作盡可能的都自動化管理,不需要我們每天都去敲那些命令。所以我相信今天的內容對大家還是有用的。

一、進程的優先級

系統優先級:0——139 數字越小優先級越高(centos4、5)各有140個運行隊和過期隊

0——99? 數字越小優先級越高(centos6、7)

實時優先級:99——0? 數字越大優先級越高

nice優先級:-20——19 數字越小優先級越高,對應系統的優先級100——139

用圖讓大家看的更家清晰:1

二、進程的類型和狀態

進程的類型:守護進程(與終端無關)

前臺進程(與終端有關)

進程的狀態:運行態running

就緒態ready

睡眠狀態:可中斷interruptable?? 不可中斷uninterruptable

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

僵死狀態zombie(結束進程,父進程結束前,子進程不關閉)建議有了就重啟服務

三、ps命令

UNIX風格 短格式如-a

BSD風格? 格式如:a

GUN風格? 格式如: – -help

a 選項包括所有終端中的進程

x 選項包括不鏈接終端的進程

u 選項顯示進程所有者的信息

f 選項顯示進程的父進程

k|–sort 屬性 對屬性排序

o 屬性… 選項顯示定制的信

user顯示執行命令的用戶

ruser 顯示真正的執行用戶

常用格式:

ps -C 腳本??? 有利于監控腳本

ps -ef顯示所有進程完整格式程序信息

ps -eFH 顯示更完整的以進程層級格式顯示進程相關信息

ps aux 顯示所有進程完整信息

例如:1、ps axo pid,cmd,%cpu,%mem k%mem 只顯示pid,cmd,%cpu,%mem然后以內存(%mem)進行排序

2

四、nice

更改優先級:renice #? pid

3

可以直接指定優先級:nice -n 10 ping 127.0.0.1

4

五、pgrep(搜索進程)

-u user??? 顯示生效者

-U user??? 查看真正發起運行命令者

-t pts/0?? 查看指定終端相關的進程

-l:??????? 顯示進程名

-a:??????? 顯示完整格式的進程名 (支持正則表達式)

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

六、pidof (可以查看一個進程對應的編號)

可以監控一個服務是否正常開啟,如果沒有開啟就將其開啟

例如:pidof httpd &> /dev/null || systemctl restart httpd

5

七、uptime

顯示當前時間,系統已啟動的時間、當前上線人數,系統平均負載(1、5、10分鐘的平均負載,一般不會超過1)如果是雙核CPU,那么如果數字接近6,說明機器已經被成分使用

7

八、top、htop(動態監控進程)

6

8

分別代表:us 用戶空間 sy 系統空間 ni 優先級優化空間 id 空閑空間 wa等待空間 hi硬中斷?? si 軟中斷? st被偷走的時間片

排序:? P:以占據的CPU百分比排序

M:占據內存百分比排序

T:累積占據CPU時長排序

首部信息l:對最上面的一行隱藏或者不隱藏

t:tasks及cpu信息

1(數字1):cpu分別顯示

m:memory信息,(內存信息)

q:退出

s:修改刷新時間間隔

k:終止指定進程

W:保存文件

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

-b:全部顯示所有進程

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

htop(動態查看進程,yum倉庫有epel源才能安裝)

9

-d #: 指定延遲時間;

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

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

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

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

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

t: 顯示進程樹

htop 相對于 top有顏色,不過看大家自己的喜歡風格了。

九、內存工具

1、vmstat

10

r可運行

b處于不可中斷睡眠態的進程

swpd 交換內存的使用總量

free 空閑物理內存總量

buffer 用于緩沖的內存總量

cache 用于緩存的內存總量

si 從磁盤交換進內存的數據速率

so 從內存到磁盤的數據速率

bi 從塊設備讀入數據到系統的速率

bo 保存數據到塊設備的速率

in 中斷速率

cs 進程切換速率

us 用戶空間

sy 系統空間

id 空閑空間

wa 等待空間

st 被虛擬機偷走的時間片

vmstat -s 顯示內存的統計數據

2、iostat 顯示CPU和設備IO信息

3、pmap(顯示進程對應的內存映射,有利于監控內存是否只占用不釋放)

pmap 進程號??? 查看某個進程的內存狀態

pmap -x 1??? 顯示信息更加詳細

4、內存監控工具

glances(需要配置yum倉庫中的epel源才能安裝)

-b: 以Byte為單位顯示網卡數據速率

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

-f /path/to/somefile: 設定輸入文件位置

-o {HTML|CSV}:輸出格式

-m: 禁用mount模塊

-n: 禁用網絡模塊

-t #: 延遲時間間隔

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

glances主要功能 遠程服務器監控

服務器模式:glances -s -B ip地址? (ip地址指明監聽的本機哪個地址)

客戶端模式: glances -c ip地址?? (IP地址指明要連入的服務器段地址)

5、dstat(系統資源統計)

-c: 顯示cpu相關信息

-C #,#,…,total

-d: 顯示disk相關信息

-D total,sda,sdb,…

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

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

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

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

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

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

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

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

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

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

十、kill(給進程發送控制信號)進程管理工具

一些常見的選項:

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

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

3 SIGQUIT:相當于ctrl+\

9 SIGKILL: 強制殺死正在運行的進程 (有些是頑強的進程,殺不死,第一個進程殺不死,但是會影響系統)

15 SIGTERM:終止正在運行的進程 (默認是15)

18 SIGCONT:繼續運行

19 SIGSTOP:后臺休眠

kill -l 查看所有信號

kill -0 檢查某個進程是否正常工作,正常工作是0,非正常工作是非0

killall -9 進程名稱????? 按名稱殺死所有的進程

pkill? 按模式給進程發信號和pgrep的一些用法一樣

-u uid:?? 生效者

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

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

十一、作業管理(前臺執行或者后臺執行)

1、前臺執行的在后面加個&的就可以放后臺執行? 例如ping 172.17.0.1 &

2、前臺和后臺一些轉換:

jobs 查看作業編號

fg 作業號???? 將后臺執行的放到前臺工作

bg 作業號???? 將后臺休眠的啟動起來放在后臺運行

killall? -18 進程名??? 將后臺休眠的使其在后臺運行

killall? -19 進程名??? 將后臺運行的使其在后臺休眠

kill %作業編號???? 將其殺掉

3、讓其在后端運行,并且不顯示在終端:

nohup ping 127.0.0.1 &> /dev/null &

輸入screen后 然后進入一個終端,然后執行命令后退出,該命令會放在后臺運行

screen -ls? 查看screen 會話

screen -r?? 回到screen終端

4、并行運行:(提高效率)

方法1:vim all.sh

f1.sh &

f2.sh &

方法2:(f1.sh&);(f2.sh&);(f3.sh)

方法3:{? f1.sh&?? f2.sh&?? f3.sh&? }

例如:{ ping -c 3 127.1 ; ping 127.2 ; }& { ping -c 3 127.3 ; ping 127.4 ; }&先執行1,3 后執行2,4

11

十二、at(在未來的某一時間執行一次任務,一但設定了放在/var/spool/at里面)

at [選項] TIME

-V 顯示版本信息

-l 列出指定隊列中等待運行的作業

-d 刪除制定的作業

-c 查看具體作業任務

-f 跟上文件??? 從指定的文件中讀取任務

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

at的時間定義格式:HH:MM 、HH:MM YYYY-MM-DD、HH:MM[am|pm] [Month] [Date] 、HH:MM[am|pm] + number [minutes|hours|days|weeks]

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

黑名單:/etc/at.deny? 默認存在,拒絕里面的用戶執行at命令

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

12

十三、crond(周期性任務計劃)

(1)系統維護作業放在:/etc/crontab中 只能管理員才能用

例如:*/5 * * * * root tar cvf /app/etc.tar.xz /etc/ &> /dev/null

每5分鐘以root的身份執行打包命令

例如:晚上9點10分運行echo命令

10 21 * * * root /bin/echo “Howdy!”

例如:每3小時echo和wall命令

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

時間的表示法:

1、特定值

2、* 每。。

3、離散取值 #,#

4、連續取值#-#

5、步長 /#

6、@reboot=========== Run once after reboot.

7、@yearly===========0 0 1 1 *

8、@annually===========0 0 1 1 *

9、@monthly===========0 0 1 * *

10、@weekly===========0 0 * * 0

11、@daily=========== 0 0 * * *

12、@hourly===========0 * * * *

但是要注意一點:對于cron任務來講,%有特殊用途;如果在命令中要使用%, 則需要轉義,將%放置于單引號中,則可不用轉義

(2)普通用戶任務:crontab

-e 編輯任務(默認是以vi打開,想要帶顏色需要在/etc/profile.d/里面創建一個文件寫入變量 export EDITOR=vim就能以vim方式打開)

-l 列出所有任務

-r 移除所有任務

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

-i -r 交互式刪除,問一下是否要刪除

管理員可以在/var/spool/cron/里面看到每個用戶的計劃任務,或者crontab -l -u user

如果以后不小心刪除計劃任務了,可以查看日志/var/log/cron,恢復計劃任務

如何每幾秒執行一次:需要用到sleep?? usleep(微妙執行)

例如:* * * * * for min in 0 1 2; do echo “hi”; sleep 20;

以上就是我對進程和計劃任務的全部總結,希望能夠幫助到大家?。?!

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/86670

(0)
In summerIn summer
上一篇 2017-09-09 16:06
下一篇 2017-09-09

相關推薦

  • 馬哥教育21期網絡班—第15周課程+練習—-sed 總結

    sed:編輯器 流編輯器,文本流編輯 ed: Stream EDitor, 行編輯器; 介紹:sed是 一個非交換性文本流編輯器,它編輯文件或標準輸入導出的文本拷貝。標準輸入可能來自鍵盤、文件重定向、字符串或變量,或者管道的文本。 sed可以干什么? 別忘了vi也是一個文本編輯器。sed可以隨意編輯小或大的文件,有許多…

    Linux干貨 2016-11-14
  • 磁盤分區和文件系統管理

    磁盤分區 兩種分區方式:MBR,GPT  MBR: Master Boot Record,1982年,使用32位表示扇區 數,分區不超過2T  如何分區:按柱面      0磁道0扇區:512bytes      446bytes: boo…

    Linux干貨 2016-08-29
  • LVS+Keepalived實現負載均衡

    keepalived工作原理 keepalived是基于VRRP協議實現的保證集群高可用的一個服務軟件,主要功能是實現后端真實服務器的故障隔離和負載均衡器間的失敗切換,防止單點故障。 VRRP協議全稱:虛擬路由冗余協議(Virtual Route Redundancy Protocol)。 keepalived安裝 # yum install keepali…

    2017-11-26
  • 分享 (History,Ls,感悟 )

    1.History 選項   -c: 清空命令歷史   -d offset: 刪除歷史中指定的第offset個命令    n: 顯示最近的n條歷史   -a: 追加本次會話新執行的命令歷史列表至歷史文件   -n: 讀歷史文件中未讀過的行到歷史列表   -r: 讀歷史文件附加到歷史列表 &…

    2017-07-15
  • 馬哥教育網絡班22期+第1周課程練習

    1、描述計算機的組成及其功能。     計算機由五大功能部分組成(馮諾依曼體系):運算器、控制器、儲存器、輸入設備、輸出設備,對應到具體的硬件設備如下:     CPU    :    包含運算器、控…

    Linux干貨 2016-08-15
  • Mysql備份II

    Mysql備份II V.II.I單臺或共用機器,數據量和訪問量小50G< 1 Mysqldump(全導出,導庫,導表) 鎖表 如果這時有些入會鎖住或者超時 2 至少停止寫入 防止innodb配置還沒刷到磁盤里 先flash tables /usr/local/mysql/bin/mysqladmin -S /tmp/mysql.so…

    Linux干貨 2016-06-09
欧美性久久久久