linux 學習 13 系統管理

第十三講 Linux系統管理
13.1.1進程管理-進程查看
13.1.2進程管理-終止進程
13.2工做管理
13.3系統資源查看
13.4系統定時任務

13.1.1進程管理-進程查看

1、進程簡介 
進程是正在執行的一個程序或命令,每個進程都是一個運行的實體,都有本身的地址空間,並佔用必定的系統資源。 

2、進程管理的做用 
判斷服務器健康狀態 
查看系統中全部進程 
殺死進程 

3、查看系統中全部進程 
[root@localhost ~]# ps aux 
#查看系統中全部進程,使用BSD操做系統格式 
[root@localhost ~]# ps -le 
#查看系統中全部進程,使用Linux標準命令格式。


USER:該進程是由哪一個用戶產生的; 
PID:進程的ID號; 
%CPU:該進程佔用CPU資源的百分比,佔用越高,進程越耗費資源; 
%MEM:該進程佔用物理內存的百分比,佔用越高,進程越耗費資源; 
VSZ:該進程佔用虛擬內存的大小,單位KB; 
RSS:該進程佔用實際物理內存的大小,單位KB; 
TTY:該進程是在哪一個終端中運行的。其中tty1-tty7表明本地控制檯終端,tty1-tty6是本地的字符界面終端,tty7是圖形終端。pts/0-255表明虛擬終端
(遠程終端)。 


STAT:進程狀態。常見的狀態有:R:運行、S:睡眠、T:中止狀態、s:包含子進程、+:位於後臺 
START:該進程的啓動時間 
TIME:該進程佔用CPU的運算時間,注意不是系統時間 
COMMAND:產生此進程的命令名 

4、查看系統健康狀態 [root@localhost ~]# top [選項]
 選項: 
-d 秒數: 指定top命令每隔幾秒更新。默認是3秒 
在top命令的交互模式當中能夠執行的命令: 
?或h: 顯示交互模式的幫助 
P: 以CPU使用率排序,默認就是此項 
M: 之內存的使用率排序 
N: 以PID排序 
q: 退出top


第一行信息爲任務隊列信息 內容     說明 
12:26:46     系統當前時間 
up 1 day, 13:32     系統的運行時間,本機已經運行1天13小時32分鐘 
2 users     當前登陸了兩個用戶 
load average: 0.00, 0.00, 0.00     系統在以前1分鐘,5分鐘,15分鐘的平均負載。通常認爲小於1時,負載較小。若是大於1,系統已經超出負荷。 

第二行爲進程信息 內容     說明 
Tasks: 95 total     系統中的進程總數 
1 running     正在運行的進程數 
94 sleeping     睡眠的進程 
0 stopped     正在中止的進程 
0 zombie     殭屍進程。若是不是0,須要手工檢查殭屍進程 

第三行爲CPU信息 內容     說明 
Cpu(s): 0.1%us     用戶模式佔用的CPU百分比 
0.1%sy     系統模式佔用的CPU百分比 
0.0%ni     改變過優先級的用戶進程佔用的CPU百分比 
99.7%id     空閒CPU的CPU百分比 
0.1%wa     等待輸入/輸出的進程的佔用CPU百分比 
0.0%hi     硬中斷請求服務佔用的CPU百分比 
0.1%si     軟中斷請求服務佔用的CPU百分比 
0.0%st     st(Steal time)虛擬時間百分比。就是當有虛擬機時,虛擬CPU等待實際CPU的時間百分比。 

第四行爲物理內存信息 內容     說明 
Mem: 625344k total     物理內存的總量,單位KB 
571504k used     已經使用的物理內存數量 
53840k free     空閒的物理內存數量,咱們使用的是虛擬機,總共只分配了628MB內存,因此只有53MB的空閒內存了 
65800k buffers     做爲緩衝的內存數量 


第五行爲交換分區(swap)信息 內容     說明 
Swap: 524280k total     交換分區(虛擬內存)的總大小 
0k used     已經使用的交互分區的大小 
524280k free     空閒交換分區的大小 
409280k cached     做爲緩存的交互分區的大小 


5、查看進程樹 [root@localhost ~]# pstree [選項] 
選項: 
-p: 顯示進程的PID 
-u: 顯示進程的所屬用戶

13.1.2進程管理-終止進程

1、kill命令 
[root@localhost ~]# kill –l 
#查看可用的進程信號


信號代號    信號名稱     說明 
1     SIGHUP     該信號讓進程當即關閉,而後從新讀取配置文件以後重啓。 
2     SIGINT     程序終止信號,用於終止前臺進程。至關於輸出ctrl+c快捷鍵。 
8     SIGFPE     在發生致命的算術運算錯誤時發出. 不只包括浮點運算錯誤, 還包括溢出及除數爲0等其它全部的算術的錯誤。 
9     SIGKILL     用來當即結束程序的運行. 本信號不能被阻塞、處理和忽略。通常用於強制終止進程。 
14     SIGALRM     時鐘定時信號, 計算的是實際的時間或時鐘時間. alarm函數使用該信號。 
15     SIGTERM     正常結束進程的信號,kill命令的默認信號。有時若是進程已經發生問題,這個信號是沒法正常終止進程的,咱們纔會嘗試SIGKILL信號,也就是信號9。 
18     SIGCONT     該信號可讓暫停的進程恢復執行,本信號不能被阻斷。 
19     SIGSTOP     該信號能夠暫停前臺進程,至關於輸入ctrl+z快捷鍵。本信號不能被阻斷。 


[root@localhost ~]# kill -1 22354   // 1,9,15
#重啓進程 
[root@localhost ~]# kill -9 22368 
#強制殺死進程

2、killall命令 
[root@localhost ~]# killall [選項][信號] 進程名 
#按照進程名殺死進程 
選項: 
-i: 交互式,詢問是否要殺死某個進程 
-I: 忽略進程名的大小寫


3、pkill命令 
[root@localhost ~]# pkill [選項] [信號] 進程名 
#按照進程名終止進程 
選項: 
-t 終端號: 按照終端號踢出用戶


按照終端號踢出用戶 
[root@localhost ~]# w 
#使用w命令查詢本機已經登陸的用戶 
[root@localhost ~]# pkill -t -9 pts/1 
#強制殺死從pts/1虛擬終端登陸的進程


13.2工做管理

1、把進程放入後臺 //至關於windows中把一個窗口最小化
----tar -zcf etc.tar.gz /etc &   // 後臺繼續運行
                                                                                                ----[root@localhost ~]# top #在top命令執行的過程當中,按下ctrl+z快捷鍵 //這種方法後臺暫停運行

2、查看後臺的工做 
[root@localhost ~]# jobs [-l] 
選項: 
-l: 顯示工做的PID 
注:「+」號表明最近一個放入後臺的工做,也是工做恢復時,默認恢復的工做。「-」號表明倒數第二個放入後臺的工做

3、將後臺暫停的工做恢復到前臺執行 [root@localhost ~]# fg %工做號 參數: %工做號: %號能夠省略,可是注意工做號 和PID的區別

4、把後臺暫停的工做恢復到後臺執行 
[root@localhost ~]# bg %工做號 
注:後臺恢復執行的命令,是不能和前臺有交互的,不然不能恢復到後臺執行
//就是不須要和用戶有交互

13.3系統資源查看

1、vmstat命令監控系統資源 
[root@localhost ~]# vmstat [刷新延時 刷新次數] 
例如: [root@localhost proc]# vmstat 1 3
// 至關於結合了top 和 ps, 更爲直觀一些,咱們關心的是mem free, 以及cpu id 這兩個資源

2、dmesg開機時內核檢測信息 
[root@localhost ~]# dmesg 
[root@localhost ~]# dmesg | grep CPU
//查看硬件信息

3、free命令查看內存使用狀態 
[root@localhost ~]# free [-b|-k|-m|-g] 
選項: 
-b: 以字節爲單位顯示 
-k: 以KB爲單位顯示,默認就是以 KB爲單位顯示 
-m: 以MB爲單位顯示 
-g: 以GB爲單位顯示

緩存和緩衝的區別 
簡單來講緩存(cache)是用來加速數據從硬盤中「讀取」的,而緩衝(buffer)是用來加速數據「寫入」硬盤的。 
//內存速度比硬盤快。例如,1600M
硬盤,固態硬盤,傳輸接口,傳輸線速度。 500M。
物理硬盤, 幾十M。 

從硬盤讀,保存在內存的緩存中,以加速數據的讀取
緩衝,加速數據的寫入。等數據夠多了,再一塊兒處理,進行下一步操做。

4、查看CPU信息 [root@localhost ~]# cat /proc/cpuinfo

//proc 內容斷電消失,啓動時從新寫入

5、uptime命令 
[root@localhost ~]# uptime 
#顯示系統的啓動時間和平均負載,也就是top命令的第一行。w命令也能夠看到這個數據。
//top 命令的第一行

6、查看系統與內核相關信息 
[root@localhost ~]# uname [選項] 
選項: 
-a: 查看系統全部相關信息; 
-r: 查看內核版本; 
-s: 查看內核名稱。

判斷當前系統的位數 [root@localhost ~]# file /bin/ls

查詢當前Linux系統的發行版本 [root@localhost ~]# lsb_release -a

7、列出進程打開或使用的文件信息 
[root@localhost ~]# lsof [選項] 
#列出進程調用或打開的文件的信息 
選項: 
-c 字符串: 只列出以字符串開頭的進程打開 的文件 
-u 用戶名: 只列出某個用戶的進程打開的文 件 
-p pid: 列出某個PID進程打開的文件

13.4系統定時任務

1、crond服務管理與訪問控制 
[root@localhost ~]# service crond restart 
[root@localhost ~]# chkconfig crond on
//通常默認自啓動和啓動

2、用戶的crontab設置 
[root@localhost ~]# crontab [選項] 
選項: 
-e: 編輯crontab定時任務 
-l: 查詢crontab任務 
-r: 刪除當前用戶全部的crontab 任務

[root@localhost ~]# crontab -e 
#進入crontab編輯界面。會打開vim編輯你的工做。 
* * * * * 執行的任務

項目     含義     範圍 
第一個「*」     一小時當中的第幾分鐘     0-59 
第二個「*」     一天當中的第幾小時     0-23 
第三個「*」     一個月當中的第幾天     1-31 
第四個「*」     一年當中的第幾月     1-12 
第五個「*」     一週當中的星期幾     0-7(0和7都表明星期日) 

時間     含義 
45 22 * * * 命令     在22點45分執行命令 
0 17 * * 1 命令     每週1 的17點0分執行命令 
0 5 1,15 * * 命令     每個月1號和15號的凌晨5點0分執行命令 
40 4 * * 1-5 命令     每週一到週五的凌晨4點40分執行命令 
*/10 4 * * * 命令     天天的凌晨4點,每隔10分鐘執行一次命令 
0 0 1,15 * 1 命令     每個月1號和15號,每週1的0點0分都會執行命令。注意:星期幾和幾號最好不要同時出現,由於他們定義的都是天。很是容易讓管理員混亂。 

舉例 
*/5 * * * * /bin/echo 」11」 >> /tmp/test 
5 5 * * 2 /sbin/shutdown -r now 
0 5 1,10,15 * * /root/sh/autobac.sh

定時任務沒有執行,看cron日誌
/var/log/cron這個文件就能夠,能夠用tail -f /var/log/cron觀察

autoba.sh

#!/bin/bash

date=$(date +\%y\%m\%d)      #//  \必須加上,由於%在定時命令中有其它的含義
size=$(du -sh /etc)

echo "Date : $date!" > /tmp/dbback/dbinfo.txt    #文件夾和文件必須事先存在
echo "Date size : $size!" > /tmp/dbback/dbinfo.txt
cd /tmp/dbback
tar -zcf etc_$date.tar.gz /etc /tmp/dbback/binfo.txt &>/dev/null
rm -rf /tmp/dbback/dbinfo.txt
相關文章
相關標籤/搜索