一、進(jìn)程管理
1.進(jìn)程管理簡介
①定義:進(jìn)程是一個有自己地址空間并占用一定的系統(tǒng)資源的實(shí)體,是正在執(zhí)行的一個程序或者命令。
②進(jìn)程管理的作用:
判斷服務(wù)器健康狀態(tài);查看系統(tǒng)中的所有進(jìn)程旷档;殺死進(jìn)程。
2.進(jìn)程查看-ps命令 和pstree命令
①ps aux ?//查看系統(tǒng)中的所有進(jìn)程歇拆,使用BSD操作系統(tǒng)格式
②ps -le ?//查看系統(tǒng)中的所有進(jìn)程鞋屈,使用linux標(biāo)準(zhǔn)命令格式
選項(xiàng):-a:顯示一個終端的所有進(jìn)程,除了會話引線
-u:顯示進(jìn)程的歸屬用戶及內(nèi)存的使用情況
-x:顯示沒有控制終端的進(jìn)程
-l:長格式顯示故觅。顯示更加詳細(xì)的信息
-e:顯示所有進(jìn)程厂庇,和A作用一致。
③ps命令的輸出
④關(guān)于進(jìn)程
⑤查看進(jìn)程樹命令
pstree [選項(xiàng)]
選項(xiàng):
-p:顯示進(jìn)程的PID
-u:顯示進(jìn)程的所屬用戶
3.進(jìn)程的查看-top命令
①查看系統(tǒng)健康狀態(tài)
服務(wù)器維護(hù):如果是高負(fù)載高壓力服務(wù)器(如游戲)逻卖,建議一周重啟一次宋列;低壓力(網(wǎng)站)至少一個月重啟一次。
②Top查看的信息解釋
4.殺死進(jìn)程
①Kill命令评也,殺死單一進(jìn)程
#kill -l ?//查看信號
②Killall命令
#killall [選項(xiàng)][信號] 進(jìn)程名
按照進(jìn)程名殺死進(jìn)程炼杖;
選項(xiàng):-i:交互式,詢問是否要?dú)⑺滥硞€進(jìn)程
-I:忽略進(jìn)程名的大小寫
③pkill命令
#pkill [選項(xiàng)] [信號] 進(jìn)程名
按照進(jìn)程名終止進(jìn)程
選項(xiàng):-t 終端號:按照終端號踢出用戶
#w ?//命令盗迟,查看當(dāng)前登錄的用戶? ? ?
只有超級用戶可以踢出用戶坤邪,如果兩個超級用戶,可以互相踢出罚缕。
5.修改進(jìn)程優(yōu)先級
①進(jìn)程優(yōu)先級簡介:linux操作系統(tǒng)是一個多用戶艇纺、多任務(wù)的操作系統(tǒng),linux系統(tǒng)中通知運(yùn)行著非常多的進(jìn)程,但是cpu在同一個時(shí)鐘周期內(nèi)只能運(yùn)算一個指令黔衡。進(jìn)程優(yōu)先級決定了每個進(jìn)程處理的先后順序蚓聘。
②修改NI值得注意事項(xiàng)
a. NI值得范圍是 -20到19
b.普通用戶調(diào)整NI值得范圍是0到19,只能調(diào)整自己的進(jìn)程
c. 普通用戶只能調(diào)高NI值盟劫,不能降低夜牡,如原本為0,只能調(diào)整為大于0
d.root用戶才能設(shè)定進(jìn)程N(yùn)I值為負(fù)值侣签,可以調(diào)整任意用戶的進(jìn)程
e. PRI(最終值)=PRI(原始值)+NI
f.用戶只能修改NI的值塘装,不能直接修改PRI
③Nice命令
#nice [選項(xiàng)] 命令
Nice命令可以給新執(zhí)行的命令直接賦予NI值,但是不能修改已經(jīng)存在的NI的值選項(xiàng):-n NI值 //給命令賦予NI值
例如:
④Renice [優(yōu)先級] PID
Renice命令是修改已經(jīng)存在進(jìn)程的NI值的命令
例如:renice -10 2125
二影所、工作管理
1.簡介
單個登錄終端中(即登錄的shell界面中)同時(shí)管理多個工作的行為蹦肴。
注意事項(xiàng):當(dāng)前的登錄終端,只能管理當(dāng)前終端的工作猴娩,而不能管理其他登錄終端的工作阴幌;放入后臺的命令必須可以持續(xù)運(yùn)行一段時(shí)間,這樣我們才能捕捉和操作這個工作卷中;放入后臺執(zhí)行的命令不能和前臺用戶有交互或需要前臺輸入裂七,否則放入后臺只能暫停,而不能執(zhí)行仓坞。
2.工作管理方法
1)把進(jìn)程放入后臺的兩種方法
2)查看后臺的工作:
#jobs [-l]
選項(xiàng):-l:顯示工作的PID
注:“+”號代表最近一個放入后臺的工作,也是工作恢復(fù)時(shí)腰吟,默認(rèn)恢復(fù)的工作无埃。“-”號代表倒數(shù)第二個放入后臺的工作毛雇。
將后臺暫停的工作恢復(fù)到前臺執(zhí)行
#fg %工作號
參數(shù)
-%工作號:%號可以省略嫉称,但是注意工作號和PID的區(qū)別。
#bg %工作號
注:后臺恢復(fù)執(zhí)行的命令灵疮,是不能和前臺有交互的织阅,否則不能恢復(fù)到后臺執(zhí)行。
3)后臺命令脫離登錄終端執(zhí)行
簡介:把命令放入后臺震捣,只能在當(dāng)前登錄終端執(zhí)行荔棉。一旦退出或關(guān)閉終端,后臺成粗就會停止蒿赢。
第一種方法是把需要后臺執(zhí)行的命令加入/etc/rc.local文件润樱;
第二種方法是使用系統(tǒng)定時(shí)任務(wù),讓系統(tǒng)在指定的時(shí)間執(zhí)行某個后臺命令羡棵;
第三種方法是使用nohup命令壹若。
三、系統(tǒng)資源查看
1)命令監(jiān)控系統(tǒng)資源
#vmstat [刷新延時(shí) 刷新次數(shù)]
#vmstat 1 3 ?//每隔一秒鐘刷新一次,總共刷新3次
2)信息字段
① procs:進(jìn)程信息字段:
-r:等待運(yùn)行的進(jìn)程數(shù)店展,數(shù)量越大养篓,系統(tǒng)越繁忙
-b:不可被喚醒的進(jìn)程數(shù)量,數(shù)量越大赂蕴,進(jìn)程越繁忙
②memory:內(nèi)存信息字段:
-swpd:虛擬內(nèi)存的使用情況柳弄,單位kB
-free:空閑的內(nèi)存容量,單位KB
-buff:緩沖的內(nèi)存容量睡腿,單位KB
-cache:緩存的內(nèi)存容量语御,單位KB
3)緩存和緩沖的區(qū)別
緩存(cache)是用來加速數(shù)據(jù)從硬盤中“讀取”的,而緩沖(buffer)是用來加速數(shù)據(jù)“寫入”硬盤的席怪。
Swap:交換分區(qū)的信息字段
-si:從磁盤中交換到內(nèi)存中數(shù)據(jù)的數(shù)量应闯,單位KB
-so:從內(nèi)存中交換到磁盤中數(shù)據(jù)的數(shù)量,單位KB挂捻,此兩個數(shù)越大碉纺,證明數(shù)據(jù)需要經(jīng)常在磁盤和內(nèi)存之間交換,系統(tǒng)性能越差刻撒。
Io:磁盤讀寫信息字段
-bi:從塊設(shè)備讀入數(shù)據(jù)的總量骨田,單位是塊
-bo:寫到塊設(shè)備的數(shù)據(jù)的總量,單位是塊声怔。此兩個數(shù)越大态贤,代表系統(tǒng)的I/O越繁忙。
System:系統(tǒng)信息字段
-in:每秒被中斷的進(jìn)程的次數(shù)
-cs:每秒鐘進(jìn)行的事件切換次數(shù)醋火。此兩個數(shù)越大悠汽,代表系統(tǒng)與接口設(shè)備的通信非常繁忙。
CPU:cpu信息字段
-us:非內(nèi)核進(jìn)程消耗cpu運(yùn)算時(shí)間的百分比
-sy:內(nèi)核進(jìn)程消耗cpu運(yùn)算時(shí)間的百分比
-id:空閑cpu的百分比
-wa:等待I/O所消耗的cpu百分比
-st:被虛擬機(jī)所盜用的cpu占比
Dmsg:開機(jī)時(shí)內(nèi)核檢測信息
#Dmesg
用法:#dmesg |grep CPU //判斷當(dāng)前服務(wù)器的cpu狀態(tài)
Free:查看內(nèi)存使用狀態(tài)
Free[-b|-k|-m|-g]
選項(xiàng):
-b:以字節(jié)為單位顯示
-k:以kb為單位顯示芥驳,默認(rèn)就是以kb為單位顯示
-m:以MB為單位顯示
-g:以GB為單位顯示
#cat /proc/cpuinfo //查看cpu的信息
Uptime命令
#uptime ?//顯示系統(tǒng)的啟動時(shí)間和平均負(fù)載柿冲,也就是top命令的第一行。W命令也可以看到這個數(shù)據(jù)
Uname:查看系統(tǒng)與內(nèi)核的相關(guān)信息
Uname[選項(xiàng)]
-a:查看系統(tǒng)所有相關(guān)信息
-r:查看內(nèi)核版本
-s:查看內(nèi)核名稱
File:判斷當(dāng)前系統(tǒng)的位數(shù)
#file /bin/ls
#lsb_release -a //查詢當(dāng)前l(fā)inux系統(tǒng)的發(fā)行版本
Lsof:列出進(jìn)程打開或使用的文件信息
Lsof[選項(xiàng)]
-c字符串:只列出以字符串開頭的進(jìn)程打開的文件
-u:用戶名:只列出某個用戶的進(jìn)程打開的文件
-p pid:列出某個PID進(jìn)程打開的文件
#lsof |more //查詢系統(tǒng)中所有進(jìn)程調(diào)用的文件
#lsof /sbin/init //查詢某個文件被哪個進(jìn)程調(diào)用
#lsof -c httpd //查看httpd進(jìn)程調(diào)用了哪些文件
#lsof -u root //按照用戶名兆旬,查詢某用戶的進(jìn)程調(diào)用的文件名
四假抄、系統(tǒng)定時(shí)任務(wù)
1.at一次執(zhí)行
#chkconfig --list |grep atd //at服務(wù)是否安裝
#service atd restart //at服務(wù)的啟動
確定它是安裝和啟動的才可以使用
例子:
#at now + 2minutes //在兩分鐘之后執(zhí)行
此時(shí)出現(xiàn)at執(zhí)行命令符,輸入要執(zhí)行的內(nèi)容
at > ?/root/hello.sh >> /root/hello.log //在兩分鐘之后執(zhí)行hello.sh腳本
2.crontab循環(huán)定時(shí)任務(wù)
①服務(wù)管理與訪問控制
#service crond restart
#chkconfig ?crond on
#chkconfig --list | grep cron //查詢cron服務(wù)是否開啟
#service crond statys ?//查詢目前此服務(wù)的運(yùn)行狀態(tài)
②訪問控制
③用戶的crontab設(shè)置
常用命令:
#crontab -l //查看root用戶的crontab任務(wù)
#crontab -r //刪除root用戶所有的定時(shí)任務(wù)
3.系統(tǒng)的crontab設(shè)置
含義:”crontab -e”丽猬,是每隔用戶執(zhí)行的命令宿饱,也就是說不同的用戶身份可以執(zhí)行自己的定時(shí)任務(wù)”模可是有些定時(shí)任務(wù)需要系統(tǒng)執(zhí)行刑棵,這時(shí)候我們就需要編譯/etc/crontab這個配置文件了。
4.Anacron配置
作用:服務(wù)器應(yīng)該執(zhí)行定時(shí)任務(wù)時(shí)愚铡,服務(wù)器因?yàn)槭裁垂收蠈?dǎo)致定時(shí)任務(wù)沒有執(zhí)行的時(shí)候蛉签,當(dāng)服務(wù)器恢復(fù)正常時(shí)胡陪,anacron可以進(jìn)行判斷,從而將定時(shí)任務(wù)重新執(zhí)行