1. 程式人生 > >linux程序監控及管理

linux程序監控及管理

程序狀態

Linux 核心:搶佔式多工

程序型別:

守護程序: daemon, 在系統引導過程中啟動的程序, 和 終端無
關程序
前臺程序:跟終端相關,通過終端啟動的程序
注意:兩者可相互轉化

程序狀態:

  • 執行態:running
  • 就緒態:ready
  • 睡眠態:
    可中斷:interruptable
    不可中斷:uninterruptable
    停止態:stopped,暫停於記憶體,但不會被排程,除非手動啟動
    僵死態:zombie,結束程序,父程序結束前,子程序不關閉
殭屍程序
一個子程序在其父程序沒有呼叫wait()或waitpid()的情況下退出。這個子程序就是殭屍程序。如果其父程序還存在而一直不呼叫wait,則該殭屍程序將無法回收,等到其父程序退出後該程序將被init回收。
孤兒程序
一個父程序退出,而它的一個或多個子程序還在執行,那麼那些子程序將成為孤兒程序。孤兒程序將被init程序(程序號為1)所收養,並由init程序對它們完成狀態收集工作。

==殭屍程序將會導致資源浪費,而孤兒則不會。==

程序的分類:

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 [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-Z] [-A|-G|-U][pid|user]
|引數|說明|
|—|—|
-a | 顯示出該命令的引數, 假如這個命令程序被其他程序替換掉, 那麼程序將顯示在括號中 -a 選項包含有壓實程序樹的選項, 對於相同的程序, 會使用n*(process)的形式展顯出來。
-c | 關閉禁用顯示結果程序樹,在預設情況下,程序子樹是會被壓縮的。不管有多少程序名相同的程序,都會逐個顯示出來。
-G | 使用vt100線性描述樹
-h | 突空出顯示當前程序的父程序並高亮顯示出來,如果沒有父程序那麼什麼都不會顯示。
-H | 突出顯示出指定程序的父程序資訊並高亮顯示出來,使用方法為 pstree -H PID
-l | 顯示長格式命令選項,在預設的情況下,命令列最多顯示寬度為132bit ,超過將不能正常顯示。
-n | 基於程序相同的祖先來進行排序,可以命名pid來代替程序名稱 。
-p | 顯示所有的時程,顯示結果包含程序名和時程序ID
-u | 顯示出使用者的UID,無論何時,這個UID和程序比較UID引數,這個新的UID將在程序名後顯示不同的引數。
-U | 使用utf-8字符集以十進位制表示

pstree -pc

ps預設顯示當前終端中的程序

|引數|說明|
|—|—|
a |選項包括所有終端中的程序
x |選項包括不連結終端的程序
u |選項顯示程序所有者的資訊
f| 選項顯示程序的父程序
o| 屬性… 選項顯示定製的資訊:pid 、comm 、%cpu 、%mem 、state 、tty、euser 、ruser

欄位含義

|欄位|含義|
|—|—|
VSZ| Virtual memory SiZe ,虛擬記憶體集,線性記憶體
RSS| ReSident Size, 常駐記憶體集
ni|nice值 值
pri|priority 優先順序
psr|processor CPU 編號
rtprio|實時優先順序

STAT :程序狀態

|欄位|含義|
|—|—|
R|running
S|interruptable sleeping
D|uninterruptable sleeping
T|stopped
Z|zombie
+| 前臺程序
l| 多執行緒程序
L|記憶體 分頁並帶鎖
N |低優先順序程序
<| 高優先順序程序
s| session leader

常用組合:

  • -ef

-e: 顯示所有程序

-f: 顯示完整格式程式資訊
- -eFH

-F: 顯示更完整格式的程序資訊

-H: 以程序層級格式顯示程序相關資訊
- eo
-eo pid,tid,class,rtprio,ni,pri,psr,
pcpu,stat,comm
axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,
pid,pcpu,comm
- -axo

ps axo pid,cmd,psr,ni,pri,rtprio

程序優先順序調整:

靜態優先順序:100-139
程序預設啟動時的nice 值為0 ,優先順序為120
只有根使用者才能降低nice 值(提高優先性)

nice [OPTION] [COMMAND [ARG]…]

執行時指定

nice -n -5 /usr/local/mysql/bin/mysqld_safe &

renice [-n] priority pid…

renice -n 2 -p 3432
-n後面是優先順序的值;-p是程序號。

top命令。輸入r,然後根據提示輸入程序ID,再輸入優先順序數值。

檢視:
ps axo pid,comm,ni

搜尋程序

最靈活:ps 選項 | 其它命令

按預定義的模式:pgrep

pgrep [options] pattern
|引數|含義|
|—|—|
-u uid|effective user ,生效者
-U uid|real user ,真正發起執行命令者
-t terminal| 與指定終端相關的程序
-l| 顯示程序名
-a| 顯示完整格式的程序 名
-P pid| 顯示指定程序的子程序

tty 
pgrep -lt pts/0 顯示pts/0終端的程序名和pid

pgrep -lu wang 顯示王wang使用者的相關程序

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

pidof bash

按確切的埠:lsof

  • lsof -i:80 檢視tcp或udp為80的埠( netstat -lnp |grep 80)
  • lsof -u username 顯示所屬user程序開啟的檔案
  • lsof -g gid 顯示歸屬gid的程序情況
  • lsof +d /DIR/ 顯示目錄下被程序開啟的檔案
  • lsof filename 顯示開啟指定檔案的所有程序
  • lsof -i -U //顯示所有開啟的埠和UNIXdomain檔案
  • lsof [email protected] 檢視指定網口有哪些程序在使用
  • lsof -i [email protected][url]www.akadia.com:123 //顯示那些程序打開了到www.akadia.com的UDP的123(ntp)埠的連結
  • lsof -i [email protected]:ftp -r //不斷檢視目前ftp連線的情況(-r,lsof會永遠不斷的執行,直到收到中斷訊號,+r,lsof會一直執行,直到沒有檔案被顯示,預設是15s重新整理)
  • lsof -i [email protected]:ftp -n //lsof -n 不將IP轉換為hostname,預設是不加上-n引數

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

系統平均負載:
指在特定時間間隔內執行佇列中的平均程序數
- ==通常每個CPU核心的當前活動程序數不大於3,那麼系統的效能良好。如果每個CPU核心的任務數大於5,那麼 此主機的效能有嚴重問題==
- 如果linux 主機是1 個雙核CPU,當Load Average為6的時候說明機器已經被充分使用
uptime
00:48:13 up  8:02,  2 users,  load average: 0.00, 0.01, 0.05
00:48:13 up指開機時間
8:02指系統運行了8分零2秒
 2 users表示當前有兩個終端登入,至少有一個tty1
 oad average: 0.00, 0.01, 0.05指1,5,10分鐘內的平均負載

top [-dupnb]

|引數|說明|
|—|—|
-b |批處理
-c| 顯示完整的命令
-I |忽略失效過程
-s |保密模式
-S |累積模式
-i<時間> |設定間隔時間
-d <時間>|預設3s
-u<使用者名稱>| 指定使用者名稱
-p<程序號> |指定程序
-n<次數> |迴圈顯示的次數

頭部欄位資訊簡介

|欄位|說明|
|—|—|
us |使用者空間
sy |核心空間
ni |改變過優先順序的程序佔用CPU的百分比
id |空閒CPU百分比
wa |IO等待佔用CPU的百分比
hi |硬中斷 通過滑鼠,硬碟資料移動等操作傳送中斷訊號
si |軟中斷(模式切換)軟體對cpu的操作,比如程序之間的切換
st|虛擬機器偷走的時間

正文欄位資訊簡介

|欄位|說明|
|—|—|
PID|程序id
USER|程序所有者
PR|程序優先順序
NI|nice值。負值表示高優先順序,正值表示低優先順序
VIRT|程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
RES|程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
SHR|共享記憶體大小,單位kb
S|程序狀態。D=不可中斷的睡眠狀態 R=執行 S=睡眠 T=跟蹤/停止 Z=殭屍程序
%CPU|上次更新到現在的CPU時間佔用百分比
%MEM|程序使用的實體記憶體百分比
TIME+ | 程序使用的CPU時間總計,單位1/100秒
COMMAND|程序名稱(命令名/命令列)

內建命令

排序:

|引數|說明|
|—|—|
P|以佔據的CPU 百分比,%CPU
M|佔據記憶體百分比,%MEM
T|累積佔據CPU 時長,TIME+

 首部資訊顯示:

|說明|指令|
|—|—|
uptime 資訊|l 命令
tasks 及cpu 資訊|t 命令
cpu 分別顯示|1 ( 數字)
memory 資訊|m 命令
退出命令|q
修改重新整理時間間隔|s
終止指定程序|k
儲存檔案|W

top互動命令

在top 命令執行過程中可以使用的一些互動命令。這些命令都是單字母的,如果在命令列中使用了s 選項, 其中一些命令可能會被遮蔽。
h |顯示幫助畫面,給出一些簡短的命令總結說明
M |根據駐留記憶體大小進行排序
P |根據CPU使用百分比大小進行排序
T |根據時間/累計時間進行排序
k |終止一個程序。
i |忽略閒置和僵死程序。這是一個開關式命令。
q |退出程式
r |重新安排一個程序的優先級別
S |切換到累計模式
s |改變兩次重新整理之間的延遲時間(單位為s),如果有小數,就換算成m s。輸入0值則系統將不斷重新整理,預設值是5 s
f或者F |從當前顯示中新增或者刪除專案
o或者O |改變顯示專案的順序
l |切換顯示平均負載和啟動時間資訊
m |切換顯示記憶體資訊
t |切換顯示程序和CPU狀態資訊
c |切換顯示命令名稱和完整命令列

W |將當前設定寫入~/.toprc檔案中

使用技巧

-多U多核CPU監控
在top基本檢視中,按鍵盤數字“1”,可監控每個邏輯CPU的狀況:
-高亮顯示當前執行程序
敲擊鍵盤“b”(開啟/關閉加亮效果)
我們發現程序id為2570的“top”程序被加亮了,top程序就是檢視第二行顯示的唯一的執行態(runing)的那個程序,可以通過敲擊“y”鍵關閉或開啟執行態程序的加亮效果
- 敲擊鍵盤“x”(開啟/關閉排序列的加亮效果)
- 通過”shift + >”或”shift + <”可以向右或左改變排序列

[root@TG1704 log]# top
top - 14:06:23 up 70 days, 16:44,  2 users,  load average: 1.25, 1.32, 1.35
Tasks: 206 total,   1 running, 205 sleeping,   0 stopped,   0 zombie
Cpu(s):  5.9%us,  3.4%sy,  0.0%ni, 90.4%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  32949016k total, 14411180k used, 18537836k free,   169884k buffers
Swap: 32764556k total,        0k used, 32764556k free,  3612636k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                
28894 root      22   0 1501m 405m  10m S 52.2  1.3   2534:16 java                                                                   
18249 root      18   0 3201m 1.9g  11m S 35.9  6.0 569:39.41 java                                                                   
 2808 root      25   0 3333m 1.0g  11m S 24.3  3.1 526:51.85 java                                                                   
25668 root      23   0 3180m 704m  11m S 14.0  2.2 360:44.53 java                                                                   
  574 root      25   0 3168m 611m  10m S 12.6  1.9 556:59.63 java                                                                   
 1599 root      20   0 3237m 1.9g  11m S 12.3  6.2 262:01.14 java                                                                   
 1008 root      21   0 3147m 842m  10m S  0.3  2.6   4:31.08 java                                                                   
13823 root      23   0 3031m 2.1g  10m S  0.3  6.8 176:57.34 java                                                                   
28218 root      15   0 12760 1168  808 R  0.3  0.0   0:01.43 top                                                                    
29062 root      20   0 1241m 227m  10m S  0.3  0.7   2:07.32 java                                                                   
    1 root      15   0 10368  684  572 S  0.0  0.0   1:30.85 init                                                                   
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:01.01 migration/0                                                            
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0  
    說明:
統計資訊區:
前五行是當前系統情況整體的統計資訊區。下面我們看每一行資訊的具體意義。
第一行,任務佇列資訊,同 uptime 命令的執行結果,具體引數說明情況如下:
14:06:23 — 當前系統時間
up 70 days, 16:44 — 系統已經運行了7016小時44分鐘(在這期間系統沒有重啟過的吆!)
2 users — 當前有2個使用者登入系統
load average: 1.15, 1.42, 1.44 — load average後面的三個數分別是1分鐘、5分鐘、15分鐘的負載情況。
load average資料是每隔5秒鐘檢查一次活躍的程序數,然後按特定演算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。
第二行,Tasks — 任務(程序),具體資訊說明如下:
系統現在共有206個程序,其中處於執行中的有1個,205個在休眠(sleep),stoped狀態的有0個,zombie狀態(殭屍)的有0個。
第三行,cpu狀態資訊,具體屬性說明如下:
5.9%us — 使用者空間佔用CPU的百分比。
3.4% sy — 核心空間佔用CPU的百分比。
0.0% ni — 改變過優先順序的程序佔用CPU的百分比
90.4% id — 空閒CPU百分比
0.0% wa — IO等待佔用CPU的百分比
0.0% hi — 硬中斷(Hardware IRQ)佔用CPU的百分比
0.2% si — 軟中斷(Software Interrupts)佔用CPU的百分比
備註:在這裡CPU的使用比率和windows概念不同,需要理解linux系統使用者空間和核心空間的相關知識!
第四行,記憶體狀態,具體資訊如下:
32949016k total — 實體記憶體總量(32GB)
14411180k used — 使用中的記憶體總量(14GB)
18537836k free — 空閒記憶體總量(18GB)
169884k buffers — 快取的記憶體量 (169M)
第五行,swap交換分割槽資訊,具體資訊說明如下:
32764556k total — 交換區總量(32GB)
0k used — 使用的交換區總量(0K)
32764556k free — 空閒交換區總量(32GB)
3612636k cached — 緩衝的交換區總量(3.6GB)
備註:
第四行中使用中的記憶體總量(used)指的是現在系統核心控制的記憶體數,空閒記憶體總量(free)是核心還未納入其管控範圍的數量。納入核心管理的記憶體不見得都在使用中,還包括過去使用過的現在可以被重複利用的記憶體,核心並不把這些可被重新使用的記憶體交還到free中去,因此在linux上free記憶體會越來越少,但不用為此擔心。
如果出於習慣去計算可用記憶體數,這裡有個近似的計算公式:第四行的free + 第四行的buffers + 第五行的cached,按這個公式此臺伺服器的可用記憶體:18537836k +169884k +3612636k = 22GB左右。
對於記憶體監控,在top裡我們要時刻監控第五行swap交換分割槽的used,如果這個數值在不斷的變化,說明核心在不斷進行記憶體和swap的資料交換,這是真正的記憶體不夠用了。
第六行,空行。
第七行以下:各程序(任務)的狀態監控,專案列資訊說明如下:
PID — 程序id
USER — 程序所有者
PR — 程序優先順序
NI — nice值。負值表示高優先順序,正值表示低優先順序
VIRT — 程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
RES — 程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
SHR — 共享記憶體大小,單位kb
S — 程序狀態。D=不可中斷的睡眠狀態 R=執行 S=睡眠 T=跟蹤/停止 Z=殭屍程序
%CPU — 上次更新到現在的CPU時間佔用百分比
%MEM — 程序使用的實體記憶體百分比
TIME+ — 程序使用的CPU時間總計,單位1/100秒
COMMAND — 程序名稱(命令名/命令列)

==有shengbang宣告的指令碼執行時ps能顯示指令碼名,沒有shengbang宣告只顯示命令==

htop 命令:需從Fedora-EPEL 源安裝

|引數|說明|
|—|—|
-d #| 指定延遲時間;
-u UserName|僅顯示指定使用者的程序
-s COLUME|以指定欄位進行排序
子命令:
s|跟蹤選定程序的系統呼叫
l| 顯示選定程序開啟的檔案列表
a |將選定的程序繫結至某指定CPU 核心
t|顯示程序樹

記憶體相關

vmstat [options] [delay [count]]

vmstat 2 5 每2s重新整理一次重新整理5次

-s: 顯示記憶體的統計資料

swampon -s顯示提供swamp的分割槽

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 1554412  42580 197048    0    0    53     3  174  951  0  2 98  0  0   

欄位含義

procs

  • r :等待執行的程序的個數,和核心數有關
  • b :處於不可中斷睡眠態的程序個數( 被阻塞的佇列的長度)

memory:

  • swpd: 交換記憶體的使用總量
  • free :空閒實體記憶體總量
  • buffer :用於buffer 的記憶體總量
  • cache :用於cache 的記憶體總量

swap:

  • si :從磁碟交換進記憶體的資料速率(kb/s)
  • so :從記憶體交換至磁碟的資料速率(kb/s)
    io: :
  • bi :從塊裝置讀入資料到系統 的 速率(kb/s)
  • bo: 儲存資料至塊裝置 的 速率

system: :

  • in: interrupts, 中斷速率,包括時鐘
  • cs: context switch, 程序切換速率

cpu: :

us:Time spent running non-kernel code
sy: 核心空間時間花費
id: cpu空閒時間. Linux 2.5.41 前, 包括IO-wait time.
wa: IO等待時間. 2.5.41 前,包括in idle.
st: Time stolen from a virtual machine. 2.6.11 前, unknown

iostat 統計CPU 和裝置IO 資訊(每個磁碟讀寫速率統計)

iostat 1 10 1s刷一次重新整理10次停止

pmap [options] pid […]程序對應的記憶體對映

-x: 顯示詳細格式的資訊
示例:pmap 1 顯示init或systemd程序的記憶體對映

另外一種實現:(pmap讀取此檔案)

cat /proc/PID/maps

系統監控工具

glances 命令:EPEL源

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

內建命令:

a Sort processes automatically l Show/hide logs
c Sort processes by CPU% b Bytes or bits for network I/O
m Sort processes by MEM% w Delete warning logs
p Sort processes by name x Delete warning and critical logs
i Sort processes by I/O rate 1 Global CPU or per-CPU stats
d Show/hide disk I/O stats h Show/hide this help screen
f Show/hide file system stats t View network I/O as combination
n Show/hide network stats u View cumulative network I/O
s Show/hide sensors stats q Quit (Esc and Ctrl-C also work)
y Show/hide hddtemp stats
客戶機A:172.16.252.134監控伺服器B:172.16.253.182
B機器行執行:
glances -s -B 172.16.253.182

A機器執行:
glances -c 172.16.253.182(指定要監控的ip,即服務端ip)

伺服器模式:

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

客戶端模式:

glances -c IPADDR
IPADDR 要連入的伺服器端地址

dstat [-afv] [options..] [delay [count]] 代替vmstat,iostat

|引數|說明|
|—|—|
-c|顯示cpu 相關資訊-C #,#,…,total
-d|顯示disk 相關資訊-D total,sda,sdb,…
-g|顯示page 相關統計資料
-m|顯示memory 相關統計資料
-n|顯示network 相關統計資料
-p|顯示process 相關統計資料
-r|顯示io 請求相關的統計資料
-s|顯示swapped 相關的統計資料
–tcp|
–udp|
–unix|
–raw|
–socket|
–ipc|
–top-cpu|顯示最佔用CPU 的程序
–top-io|顯示最佔用io 的程序
-top-mem|顯示最佔用記憶體的程序
–top-latency|顯示延遲最大的程序

kill [-s signal|-p] [-q sigval] [-a] [–] pid…

向程序傳送控制訊號,以實現對程序管理,每個訊號對應一個數字,訊號名稱以SIG 開頭(可省略 ),不 區分大小寫

 顯示當前系統可用訊號: kill –l,trap -l

常用訊號:man 7 signal

signal|complications
—|—
0)用於檢查程序是否在執行
1) SIGHUP|無須關閉程序而讓其重讀配置檔案
2) SIGINT|中止正在執行的程序;相當於Ctrl+c
3) SIGQUIT|相當於ctrl+(quit)
9) SIGKILL|強制殺死正在執行的程序
15) SIGTERM|終止正在執行的程序(正常終止,預設發15)
18) SIGCONT|繼續執行
19) SIGSTOP|後臺休眠

 按PID :kill [-SIGNAL] pid …

kill –n SIGNAL pid;kill –s SIGNAL pid

按名稱:killall [-SIGNAL] comm…

killall -9 bash
killall httpd

按模式:pkill [options] pattern(與pgrep選項類似)

-SIGNAL
-u uid: effective user ,生效者
-U uid: real user ,真正發起執行命令者
-t terminal: 與指定終端相關的程序
-l:顯示程序 名(pgrep 可用)
-a:顯示完整格式的程序名(pgrep 可用)
-P pid: 顯示指定程序的子程序

pkill -lu wang 殺死王使用者相關的程序
pkill -lt pts/0 殺死終端pts/0的程序

linux作業控制

前臺作業
通過終端啟動,且啟動後一直佔據終端;
後臺作業
可通過終端啟動,但啟動後即轉入後臺執行(釋放終端)

讓作業運行於後臺

  • 執行中的作業: Ctrl+z
  • 尚未啟動的作業:# COMMAND &

**後臺作業雖然被送往後臺執行,但其依然與終端相關;退出終端,將關閉
後臺作業。如果希望送往後臺後,剝離與終端的關係可使用**
nohup COMMAND &

screen;COMMAND

檢視所有作業

jobs 只能看到當前終端的程序

作業控制

  • fg [[%]JOB_NUM] :把指定的後臺作業調回前臺
  • bg [[%]JOB_NUM]:讓送往後臺的作業在後臺繼續執行
  • kill [%JOB_NUM] 終止指定的作業

多指令碼並行執行

方法1

vi all.sh
f1.sh&
f2.sh&
f3.sh&

方法2

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

方法3

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

例項

  1. 使用kill 命令實現讓httpd服務重新載入配置檔案
#找到httpd的父程序
pstree -p |grep httpd
        |-httpd(3226)-+-httpd(3231)
        |             |-httpd(3232)
        |             |-httpd(3233)
        |             |-httpd(3234)
        |             |-httpd(3235)
        |             |-httpd(3236)
        |             |-httpd(3237)
        |             `-httpd(3238)
[260][[email protected]: conf]# vim httpd.conf 
[261][[email protected]: conf]# mkdir -p /home/www/test
[262][[email protected]: conf]# echo 11111 > /home/www/test/index.html
# 傳送1訊號過載配置
[263][[email protected]: conf]# kill -1 3226
  1. 對另一個終端中正在執行的ping命令實現ctrl +C功能
[[email protected]: boot]# pgrep -l ping
86735 ping
或者使用pidof查
[363][[email protected]: boot]# pidof  ping
86735
[364][[email protected]: boot]# pkill ping
[365][[email protected]: boot]# pgrep ping
  1. 系統檢測到黑客用root使用者登入了系統,如何將黑客所登入的終端殺死,並立即對root使用者修改密碼。
#先改密碼
passwd 
#檢視root身份登入的終端
[[email protected]: boot]# w
 18:52:56 up 21:15,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT
root     pts/0    172.16.250.153   12:08    3:14   0.03s  0.03s -bash
root     pts/1    172.16.250.153   11:22    6:45m  0.11s  0.11s -bash
root     pts/2    172.16.250.153   12:58    0.00s  0.03s  0.00s w

#檢視自己當前使用的終端
[368][[email protected]: boot]# tty
/dev/pts/2
#強制下線其他終端
[[email protected]: boot]# pkill -9 -t pts/1
[373][[email protected]: boot]# pkill -9 -t pts/0
[374][[email protected]: boot]# w
 18:54:27 up 21:16,  1 user,  load average: 0.05, 0.03, 0.05
USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT
root     pts/2    172.16.250.153   12:58    0.00s  0.04s  0.00s w
  1. 測試一下sshd程序是否還存活著
pgrep sshd|xargs kill -0
  1. 將hacker使用者所開啟的程序全部殺死
 pkill -9 -u hacker
  1. 並行執行三個指令碼程式
#方法一:寫在腳本里:
echo -e 'a.sh&\nb.sh&\nc.sh&' >> test.sh\
#方法二:
(a.sh&);(b.sh&);(c.sh&);
#方法三
{a.sh& b.sh& c.sh&}
  1. 計劃每到週日的早上8點定時將伺服器重啟,如何實現?
echo 0 8 * * * root reboot >> /etc/cron.d/reboot
或者
echo 0 8 * * * reboot|contrab
  1. 檢視/bin/rpm命令所依賴的庫檔案
ldd /bin/rpm
  1. 列舉三個常用檢視系統負載的命令
uptime
top
htop
iostat
vmstat
  1. 如何將程序置入後臺,而且在關閉終端後不退出
nohup COMMAND & 
#screen;COMMAND
  1. 用crontab執行定時任務,寫出定時任務,每週三的凌晨1到5點,每十分鐘執行一次/bin/backup.sh
echo '*/10 1-5 * * 3 root /bin/backup.sh' >> /etc/cron.d/backup
或者
echo '*/10 1-5 * * 3  /bin/backup.sh' |contrab
  1. linux系統如何檢視佔用80埠的程序,並統計其程序數,將這些程序殺掉
lsof -i:80
kill -9 pid

相關推薦

給自己看的Linux程序監控管理

root 4538 2.8 0.4 51116 8712 pts/2 SL+ 18:59 0:44 mplayer /mnt/usb/music/20080625211631.mp3 /mnt/usb/music/46250194.mp3 /mnt

linux程序監控管理

程序狀態 Linux 核心:搶佔式多工 程序型別: 守護程序: daemon, 在系統引導過程中啟動的程序, 和 終端無 關程序 前臺程序:跟終端相關,通過終端啟動的程序 注意:兩者可相互轉化 程序狀態: 執行態:runnin

linux程序檢視管理的工具pstree, ps, pidof, pgrep, top等

linux程序檢視及管理的工具    介紹Linux程序檢視及管理的工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

RPM程序安裝管理

package 9.png oss 指定版本 管理工具 正常 height 進行 src Linux 應用程序基礎應用程序與系統命令的關系文件位置系統命令:一般在/bin和/sbin目錄中,或為Shell內部指令應用程序:通常在/usr/bin和/usr/sbin目錄中主要

Linux程序監控命令ps詳解

    ps是processes的縮寫,是對當前系統程序進行監控。要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,ps命令就是最基本程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有殭屍、哪些程序佔用了過多的資源

Linux程序之如何管理程序?如何動態地檢視程序的狀態?(top命令)

文章目錄 1. top命令的主要作用 2. top命令引數解讀 2.1 第一行 2.2 第二行 2.3 第三行 2.4 第四行 2.5 第五行 2.6 第六行為空,下面是第七行

kafka_0.10.1.0監控管理

1. kafka監控 kafka自身沒有監控管理頁面,無論是進行一些管理操作還是狀態的監控都要命令加一大堆記不住的引數,實在是很不方便,不過好在在github上開源了一些工具,在kafka的生態系統中也有提及到: Kafka Manager: 都是以表格的形式展現資料,比

linux程序監控重啟shell指令碼

本文主要內容: shell日誌date format shell poll監控重新執行,掛了則重啟程式 前段時間工作需要使用python+scrapy寫了個新聞輿情爬蟲系統,伺服器上面跑了大概5

Linux程序監控 + 釘釘通知

程序監控指令碼 背景 啟動於正式伺服器的專案,有時會因為某種因素,例如docker記憶體超限因而容器崩潰(前不久就遇過…),如伺服器記憶體不足或IO讀寫異常而崩潰….等等等等。而這些原因,都可能影響到專案的正常執行,嚴重地將會被kill掉。那麼,在伺服器

linux系統日誌管理

系統日誌 一.系統日誌預設分類 /var/log/messages    ##系統服務及日誌,包括服務的資訊,報錯等等 /var/log/secure        ##系統認證資訊日誌 /var/l

(tomcat) java程序監控守護

Linux伺服器下需要監控某些程序的狀態. 當程序不存在時, 自動啟動, 當程序異常時, 自動重啟. 以tomcat為例 1. 編寫監控指令碼(/data/bin/monitor.sh) #!/b

AIX程序監控管理

AIX程序監控與管理 效能優化以及確定系統中的效能瓶頸是系統管理員的主要任務之一. 在一個計算機系統中, CPU, 記憶體, 硬碟和網路是影響效能的主要因素, 因此係統效能調整也主要在於如何在這些資源中獲得某種平衡, 

Linux程序建立同步實驗

用full、empty和mutex分別表示倉庫的庫存的同步訊號量、倉庫為空的同步訊號量和正在對倉庫進行操作的互斥訊號量。其初值分別為0、倉庫的容量(程式中使用MAX_BUFFRT_SIZE表示)和0。生產者:p(empty) -> p(mute) -> v(mutex) -> v(full)

ubuntu linux新增使用者管理

root@localhost:~# useradd -r kk //建立一個系統使用者kk 為新新增的使用者指定home目錄。   root@localhost:~# useradd -d /home/myf kk //新新增使用者kk,其home目錄為/home/myf 當用使用者名稱kk登入主

Linux學習匯總——Linux程序管理,終端類型命令獲取幫助方式

linux程序管理 linux終端類型 linux命令幫助 linux常用命令 幫助命令 本章Blog相關Linux知識點計算機=硬件+軟件 。馮諾依曼理論,五大部件:CPU —— 運算器、控制器, 存儲器,輸入設備,輸出設備。Shell 環境配置通過環境變量進行配置的 ,環境變量保存對應

Linux學習匯總——Linux程序管理,終端類型獲取命令幫助方式

linux程序管理 linux終端類型 linux獲取命令幫助 linux命令幫助 linux常用命令 本章Blog相關Linux知識點計算機=硬件+軟件 。馮諾依曼理論,五大部件:CPU —— 運算器、控制器, 存儲器,輸入設備,輸出設備。Shell 環境配置通過環境變量進行配置的 ,環

Linux 程序管理sed基礎

type testing 5.1 ace manage awk pup see dev 1、 簡述rpm與yum命令的常見選項,並舉例 rpm簡稱包管理器,即RedHat系列發行版的程序包管理工具,由於它遵循GPL規則且功能強大方便,故而廣受歡迎; yum是rhe

Linux匯總一——Linux程序管理Linux終端,Linux命令格式、命令類型Linux命令幫助

for nco argument tomcat empty 環境變量 地址空間 偽終端 多個進程 本章blog主要匯總了Linux程序管理,linux應用程序的分類,Linux終端類型,Linux命令格式、命令類型及Linux命令幫助等相關知識點,並介紹了man命令,whi

Linux程序管理、檢視、殺死程序、任務管理、系統資源監控(課堂學習筆記)

  一、程序管理 1.檢視Linux啟動的第一個程序 2.檢視程序狀態 2.1觀察系統所有程式:ps aux 2.2檢視部分程序 2.3啟動httpd服務 2.4程序樹(可以檢視父程序與子程序) 二、檢視程序 1.Linux程序狀態 2.觀察程序

Linux程序管理之動態監控

(1)介紹 top與ps命令很相似。它們都用來顯示正在執行的程序。top與ps最大的不同之處在於,top在執行一段時間可以更新正在執行收到的程序。 (2)語法 top [選項] 選項 作用 -d秒數