第十三講 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