Linux_系統管理

目錄

一、進程管理

進程管理簡介和作用

進程的查看

殺死進程

修改進程優先級

二、工作管理

工作管理簡介

工作管理方法

後臺命令脫離工作終端執行

三、系統資源查看

四、系統定時任務

at一次執行

crontab循環定時任務

系統的crontab設置

anacron配置


本文爲慕課網Tony老師視頻筆記,Tony老師的課通俗易懂,幽默風趣,Linux入門或鞏固基礎的話,推薦看一下!https://www.imooc.com/u/279399/courses?sort=publish

一、進程管理

進程管理簡介和作用

進程簡介:

進程是正在執行的一個程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,並佔有一定的系統資源

進程管理的作用:

判斷服務器健康狀態

查看系統中所有進程

殺死進程

進程的查看

ps aux
#查看系統中所有的進程,使用BSD操作系統格式(沒有-只是符合BSD格式,加-也可以)
ps -le
#查看系統中所有的進程,使用Linux標註命令格式
選項
-a:顯示一個終端的所有進程,除了會話引線
-u:顯示進程的歸屬用戶和內存使用情況
-x:顯示沒有控制終端的進程
-l:長格式顯示,顯示更加詳細的信息
-e:顯示所有進程,和-A作用一致

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

pstree[選項]:顯示進程樹
選項:
-p:顯示進程的PID
-u:顯示進程的所屬用戶

top[選項]:查看系統健康狀態
選項:
-d:秒數,指定top命令每隔幾秒更新,默認是3秒
-b:使用批處理模式輸出。一般和"-n"選項合用
-n次數:指定top命令執行的次數,一般和"-b"選項合用
在top命令的交互模式當中可以執行的命令:
?或h:顯示交互模式的幫助
P:以CPU使用率進行排序默認就是此項
M:以內存使用率進行排序
N:以PID排序
q:退出top

第一行信息爲任務隊列信息(不過這裏的load average的大小是按系統的核數來看,雙核就是2,四核就是4,不過可能即使滿足了這個數值,CPU和MEM還可以接受的話也不一定就超出了負載):

第二行爲進程信息 

第三行爲CPU狀態

第四行爲物理內存信息 (緩衝的作用:加速了數據的寫入)

第五行爲交換分區信息(緩存的作用:加速了數據的讀取)

殺死進程

kill -l
#查看可用的進程信號

killall[選項][信號]進程名
#按照進程名殺死進程
選項:
-i:交互式,詢問是否要殺死這個進程
-I:忽略進程名大小寫 

pkill[選項][信號]進程名
#按照進程名終止進程
選項:
-t終端號:按照終端號踢出用戶
w命令:查看已登錄用戶的信息(TTY字段就是終端號)

pkill -9 -t pts/1
#強制殺死從pts/1終端登錄的進程

修改進程優先級

進程的優先級:
Linux操作系統是一個多用戶、多任務的操作系統,Linux系統中通知運行着非常多的進程
但是CPU在同一個時鐘週期內只能運行一個指令。進程的優先級決定了每個進程處理的先後順序

進程信息中的PRI字段代表Priority(不能直接修改),NI字段代表Nice(可以修改)
這兩個值都是優先級(最終是PRI和NI相加),數字越小,代表進程優先級越高

修改NI值時的注意事項:
1、NI值的範圍是-20到19
2、普通用戶調整NI值的範圍是0-19,而且只能調整自己的進程
3、普通用戶只能調高NI值,而不能降低,如原本NI值爲0,則只能調整爲大於0
4、root用戶才能設定進程NI值爲負值,而且可以調整任何用戶的進程
5、PRI(最終值)=PRI(原始值)+NI
6、用戶只能修改NI值,不能直接修改PRI值

nice[選項]命令
#nice命令可以給新執行的命令直接賦予NI值,但是不能修改已經存在進程的NI值
選項:
-n NI值:給命令賦予NI值
例如:
nice -n -5 service httpd start

renice[優先級]PID
#修改已存在進程的NI值
例如:
renice -10 2125

二、工作管理

工作管理簡介

工作管理是指在單個登錄終端中(也就是登錄的shell界面中)同時管理多個工作的行爲

注意事項:
1、當前的登錄終端只能管理當前終端的工作,而不能管理其他登錄終端的工作
2、放入後臺的命令必須可以持續運行一段時間,這樣我們才能捕捉和操作這個工作
3、放入後臺執行的命令不能和前臺用戶有交互或需要前臺輸入,否則放入後臺只能暫停,而不能執行

工作管理方法

tar -zcf etc.tar.gz /etc &
#把命令放入後臺並在後臺執行

top
#在命令執行過程中,按下ctrl+z快捷鍵,放在後臺暫停

jobs[-l]:查看後臺的工作
選項:
-l:顯示工作的PID
注意:"+"號代表最近一個放入後臺的工作,也是工作恢復時,默認恢復的工作
"-"號代表倒數第二個放入後臺的工作

將後臺暫停的工作恢復到前臺運行
fg %工作號
參數:
%工作號[]:%可以省略,但是注意工作號和PID的區別

將後臺暫停的工作恢復到後臺運行
bg %工作號
注意:後臺恢復執行的命令,是不能和前臺有交互的,否則不能恢復到後臺執行

後臺命令脫離工作終端執行

把命令放入後臺只能在當前登錄終端(當前Bash)執行,一旦退出或關閉終端後臺程序就會停止

方式一:把需要後臺執行的命令加入到/etc/rc.local文件中
方式二:使用系統定時任務,讓系統在指定的時間執行某個後臺命令
方式三:使用nohup命令,nohup [命令] &

三、系統資源查看

vmstat [刷新延時 刷新次數]:監控系統資源
例如:
vmstat 1 3
procs:進程信息字段
r:等待運行的進程數,數量越大,系統越繁忙
b:不可被喚醒的進程數量,數量越大,系統越繁忙
memory:內存信息字段
swpd:虛擬內存的使用情況,單位kb
free:空閒的內存容量,單位kb
buff:緩衝的內存容量,單位kb
cache:緩存的內存容量,單位kb

緩衝和緩存的區別
簡單來說緩存(cache)是用來加速數據從磁盤中“讀取”的,而緩衝(buffer)是用來加速數據“寫入”硬盤的

swap:交換分區的信息字段
si:從磁盤中交換到內存中數據的數量,單位kb
so:從內存中交換到磁盤中數據的數量,單位kb
上面兩個數越大,證明數據經常在磁盤和內存之間交換,系統性能越差
io:磁盤讀寫信息字段
bi:從塊設備讀入數據的總量,單位是塊
bo:寫到塊設備的數據的總量,單位是塊
上面連個數越大,代表系統的I/O越繁忙

system:系統信息字段
in:每秒被中斷的進程次數
cs:每秒鐘進行的事件切換次數
上面兩個數越大,代表系統與接口設備的通信非常繁忙
CPU:CPU信息字段
us:非內核進程消耗CPU運算時間百分比
sy:內核進程消耗CPU運算時間百分比
id:內核CPU的百分比
wa:等待I/O所消耗的CPU百分比
st:被虛擬機所盜用的CPU百分比

dmesg:開機時內核檢測信息
dmesg
dmesg | grep CPU

free [-b|-k|-m|-g|-h]:查看內存使用信息
選項:
-b:單位字節
-k:單位KB
-m:單位MB
-g:單位GB
-h:單位自動

cat /proc/cpuinfo:查看CPU信息

uptime:顯示系統的啓動時間和平均負載,也就是top命令的第一行,w命令也可以看到這個信息

uname [選項]:查看系統與內核相關信息
選項:
-a:查看系統所有相關信息
-r:查看內核版本
-s:查看內核名稱

file /bin/ls:判斷當前系統的操作位數

lsb_release -a:查看當前系統的發行版

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

lsof | more:查詢系統中所有進程調用的文件
lsof /sbin/init:查詢某個文件被哪個進程調用
lsof -c httpd:查看httpd進程調用了哪些文件
lsof -u root:按照用戶名,查詢某用戶的進程調用的文件名

四、系統定時任務

at一次執行

確定at是否安裝並啓動
chkconfig --list | grep atd
service atd restart

at的訪問控制
1、如果系統中有/etc/at.allow文件,
那麼只有寫入/etc/at.allow文件(白名單)中的用戶可以使用at命令(/etc/at.deny文件會被忽略)
2、如果系統中沒有/etc/at.allow文件,只有/etc/at.deny文件,那麼寫入/etc/at.deny文件(黑名單)
中的用戶不能使用at命令。對root不起作用
3、如果系統中這兩個文件都不存在,那麼只有root用戶可以使用at命令

at [選項] 時間
選項:
-m:當at工作完成後,無論是否有輸出,都用email通知執行at命令的用戶
-c 工作號:顯示該at工作的實際內容
時間:
HH:MM                                                                如:02:30  
HH:MM YYYY-MM-DD                                        如:02:30 2019-07-25
HH:MM[am|pm] [month] [date]                            如:02:30 July 25
HH:MM[am|pm] + [minutes|hours|days|weeks]   如:now + 5 minutes

在兩分鐘之後執行hello.sh腳本
at now +2 minutes
at>/root/hello.sh >> /root/hello.log

在指定的時間重啓
at 02:00 2019-07-25
at>/bin/sync
at>/sbin/shutdown -r now

atq:查詢當前服務器上的at工作
atrm[工作號]:刪除指定的at任務

crontab循環定時任務

確認crond服務是否安裝和啓動
service crond restart
chkconfig crond on

訪問控制:
1、當系統中有/etc/cron.allow文件是,只有寫入此文件的用戶可以使用crontab命令
同樣如果有此文件,/etc/cron.deny文件會被忽略,/etc/cron.allow文件的優先級更高
2、當系統中只有/etc/cron.deny文件時,則寫入此文件的用戶不能使用crontab命令,
沒有寫入此文件的用戶可以使用

crontab [選項]
選項:
-e:編輯crontab定時任務
-l:查詢crontab任務
-r:刪除當前用戶所有的crontab任務

crontab -e
進入crontab編輯界面,會打開vim編輯你的工作
*****執行的任務

*號含義

注意事項:
1、六個選項都不能爲空,必須填寫。如果不確定使用:"*"代表任意時間
2、最小有效時間是分鐘,最大時間範圍是月
3、在定義時間時,日期和星期最好不要在一條定時任務中出現
      因爲他們都是以天作爲單位,會讓管理員混亂
4、在定時任務中不管是直接寫命令還是再腳本中寫命令,最好都用絕對路徑

系統的crontab設置

"crontab -e"是每個用戶執行的命令,也就是說不同的用戶身份可以執行自己的定時任務。
可是有些定時任務需要系統執行,這是我們需要編輯/etc/crontab這個配置文件了

/etc/下,有着cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/幾個文件,
保存着系統每隔一天一小時一個月一週所要執行的腳本,也可以根據情況加入自己的腳本

執行定時任務的方法
1、手工執行定時任務 crontab -e
2、系統定時任務 
     腳本拷到/etc/下的目錄中
     卸載/etc/crontab文件中

anacron配置

anacron是用來保證在系統關機的時候錯過的定時任務,可以在系統開機之後再執行

anacron檢測週期
1、anacron會使用一天、七天、一個月作爲檢測週期
2、在系統的/var/spool/anacron/目錄中存在
      cron.{daily,weekly,monthly}文件,用於記錄上次執行cron的時間
3、和當前時間作比較,如果兩個時間的差值超過了anacron的指定時間差值,證明有cron任務被漏了執行

注意:
1、在老的CentOS版本中,/etc/cron.{daily,weekly,monthly}這些目錄即會被cron調用,也會被anacron調用
     容易反覆執行
2、在CentOS 6.x中,則只會被anacron調用,避免了重複執行
3、在CentOS 6.x中,anacron不再是服務而是系統命令

cat /etc/anacrontab 
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# 最大隨機延遲
RANDOM_DELAY=45
# anacron的執行時間範圍
START_HOURS_RANGE=3-22

#天數 強制延遲(分) 工作名稱 實際執行命令
1    5    cron.daily        nice run-parts /etc/cron.daily
7    25    cron.weekly        nice run-parts /etc/cron.weekly
@monthly 45    cron.monthly        nice run-parts /etc/cron.monthly

cron.daily工作來說明執行過程
1、首先讀取/var/spool/anacron/cron.daily中的上一次anacron執行的時間
2、和當前時間比較,如果兩個差值超過一天,就執行cron.daily工作
3、執行這個工作只能在03:00-22:00之間
4、執行工作時強制延遲時間爲5分鐘,在隨機延時0-45分鐘時間
5、使用nice命令執行默認優先級,使用run-parts腳本執行/etc/cron.daily目錄中的所有可執行文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章