linux系統引導,管理進程,計劃任務

linux系統引導,管理進程,計劃任務

先了解下linux的引導流程:

開機自檢-------MBR引導--------GRUB引導--------加載linux內核--------加載init進程初始化

 

開機自檢:即BIOS 對硬件進行檢查

 

MBR引導:根據硬盤第一個扇區裏的MBR(master Boot Record 主引導記錄)設置,將系統控制權交給包含操作系統引導文件的分區,或者直接根據MBR裏記錄的引導性能系調用啓動菜單(如GRUB)

 

GRUB引導:顯示啓動菜單給用戶,加載linux內核,然後將控制權交給內核

 

加載內核:啓動操作系統(linux默認內核文件爲 /boot/vmlinuz-xxxxxxx)

 

INIT進程:初始化操作系統--------讀取/etc/inittab,根據其內容首先執行/etc/rc.d/rc.sysinit,並通過/etc/rc.d/rc腳本來決定啓動那些服務和進程,最後運行終端程序/sbin/mingetty,等待用戶登錄(登錄過程由/bin/login 程序負責驗證)

 

系統初始化進程文件:

init進程:第一個啓動的進程,所以PID(進程ID)永遠爲1

/etc/inittab:裏面的配置文本每行基本格式如:四個字段,:號分隔意思爲:

標記:運行級別:動作:程序或腳本

runlevels運行級別:

0:關機狀態

1:單用戶模式

2:字符界面多用戶模式(不支持網絡)

3:字符界面多用戶模式(完整模式)

4:未分配模式

5:圖形界面模式

6:重新啓動

 

action---動作類型:

initdefault:設置系統默認運行級別

sysinit: 設置系統初始化的操作腳本

wait: init進程等待此行的配置完成後,在往下進行

ctrlaltdel: 設置用戶按CTRL+ALT+Delete組合鍵的操作

powerfail: 設置斷電(使用不間斷電源)時採取的動作

powerwait: 設置恢復供電時纔去的動作

repawn: 一旦該行的配置對應的進程被終止,立即重啓該進程

process: 程序或腳本字段

 

/etc/rc.d/rc.sysinitinit進程所調用的系統初始化腳本,主要設置網絡,主機名,加載文件系統,設置時鐘等(如啓用磁盤配額功能就在該腳本中運行)

/etc/rc.d/rc 通過制定不同的級別參數來加載及終止不同的系統服務

/etc/rc.d/rcX.d/ 在/etc/rc.d/下有/ect/rc.d/rc0.d------到------/etc/rc.d/rc6.d/ 7個目錄,都被/etc/rc.d/rc所調用,這些目錄裏記錄了在以自己文件名(0---6)啓動的系統級別時,所要運行的一些系統服務,其中以S開頭表示運行,以K開頭表示終止,中間的數字表示啓動或者終止服務的執行順序,目錄中的文件鏈接了/etc/rc.d/init.d/目錄中的原始服務啓動腳本

/etc/rc.d/init.d/ 裏面的系統服務腳本都可直接執行,如start reload stop restart 等,也可用service調用

service httpd start 啓動http服務

 

關於服務:能終止不殺死

能加載不重啓

 

/etc/rc.d/rc.local/ 一個額外的系統啓動控制文件,主要爲管理員自行設置啓動命令提供了一種途徑

 

運行級別控制:

runlevel顯示系統運行級別,如之前未切換過運行級別,第一列將顯示“N”

clip_p_w_picpath001

init用於設置系統的運行級別

init 3 進入字符界面的完整模式

init 0 關機

init 6 重啓

設置系統服務在不同運行級別中的狀態:

ntsysv調出一個交互式界面,用於集中配置系統服務的啓動狀態

ntsysv --level 35 同時對運行級別3,5 進行系統服務啓動狀態的設置

clip_p_w_picpath002

星號選中爲開機啓動,爲空是開機不啓動 F1 獲得該服務的詳細說明

 

chkconifg與ntsysv功能類似,對單一的服務設定較方便

--list 顯示所有服務的所有運行狀態(後跟服務名則顯示這一個服務狀態)

--level 35 服務名 on/off 在運行級別35中開啓或關閉該服務

缺少—level 35 選項時,默認在2345中都設置

clip_p_w_picpath004

 

 

進程管理>>

查看進程:

ps查看靜態進程的統計信息

-a 顯示當前終端所有進程,包括其他用戶進程,與-x 結合用,將顯示系統中所有進程信息

-u 使用以用戶名爲主的格式輸出信息

-x 顯示當前用戶在所有終端下的進程信息

-e 顯示系統內所有進程信息

-l 以長格式顯示

-f 使用完整格式顯示

 

clip_p_w_picpath006

各個字段的含義:

USER:啓動該進程的用戶賬號

PID:該進程在系統的ID號(唯一的)

%CPU:該進程佔用的CPU(百分比)

%MEM 該進程佔用的內存百分比

VSZ:佔用的虛擬內存

RSS:佔用的物理內存

TTY:在哪個終端運行(?表示未知或不需要終端)

SATA: 進程的狀態(S表示休眠,R表示運行,Z表示僵死,<表示高優先級,N表示低優先級,s表示父進程,+ 表示前臺運行)

START: 開始時間

TIME:佔用的CPU時間

COMMAND:啓動該進程的命令的名稱

 

top 查看進程的動態信息(默認3秒刷新一次)

clip_p_w_picpath008

按P:根據CPU佔用情況對進程列表進行排序

M:根據內存佔用情況對進程列表進行排序

N:根據啓動時間排序

h: 獲得幫助

q: 退出

k:殺死某一進程

 

pgrep查詢特定進程的信息

-U 針對某個用戶查詢

-t 針對某個終端查詢

-l 同時列出對應的進程名

clip_p_w_picpath009

clip_p_w_picpath010

 

 

pstree查看進程樹

-p 同時列出對應的PID

-u 列出對用的用戶名

-a 列出完整的命令信息

clip_p_w_picpath011

查看到了luojunyong用戶現在的操作,及對應PID

 

 

進程後臺運行:

有些耗時的進程,我們可以放在後臺運行,而不影響我們的繼續工作,我們可以加”&”號來改變進程的運行方式,如,cp–avf /media/ ./ &這樣這個任務就在後臺運行了

有時要用nohup命令表示不再終端屏幕上顯示

clip_p_w_picpath012

 

clip_p_w_picpath013

jobs幫助我們看到正在運行的進程 jobs –l 連同PID一同顯示出來

clip_p_w_picpath014

 

 

終止進程:

kill 終止進程

-9 強制殺死

 

killall終止系統中多個形同名字的進程時用此很方便

-9 強制殺死

 

pkill根據各種屬性來終止進程

-9 強制殺死

-U 指定用戶

-t 指定終端

 

clip_p_w_picpath015

killall殺同名進程

 

clip_p_w_picpath016

clip_p_w_picpath017

clip_p_w_picpath018

已經無進程了,pkill可以根據各種情況來選擇性的殺死

 

計劃任務管理

at 一次性計劃任務

首先包證atd服務的運行

clip_p_w_picpath019

 

確定現在的時間並加一個計劃任務:

clip_p_w_picpath020

最後按CTRL+D 來提交

 

clip_p_w_picpath021

可以看出已經執行了

 

atq查詢當前系統中的任務列表

atrm刪除當前系統中的任務列表

我們也可用 at now+5minutes 五分鐘後

at now+5hours 五小時後

at now+5days 五天後

at now+5weeks 五週後

at noon 中午12點

at midnight 晚上零點

at teatime 下午4點(下午茶)

等來指定任務計劃

clip_p_w_picpath022

上圖在午夜零點查看內存狀態並記錄

在3小時後查看CPU狀態並記錄

查看任務列表

刪除一個代號爲3的計劃任務

在次查看時,已經就剩一個任務計劃了

列隊裏能查看具體內容:

clip_p_w_picpath023

clip_p_w_picpath024

 

 

crontab週期性任務設置

確保服務運行狀態:

clip_p_w_picpath025

 

配置文件:

/etc/crontab系統任務配置文件

clip_p_w_picpath027

上面爲每行爲:

腳本用的shell類型

執行路徑

任務輸出信息發送到指定用戶信箱

執行任務計劃時所使用的主目錄

藍色字體爲範例:告訴我們格式應該寫成:分時天月周命令或腳本

 

/etc/cron*

clip_p_w_picpath029

上面的目錄分別放入我們指定的任務腳本到每天,每月,每小時,每星期各個目中去

 

/var/spool/cron/*

cron任務將被保存在上個目錄,文件名與對應的用戶賬號同名

 

crond進程會每分鐘都會檢查/etc/crontab /etc/cron.d /var/spool/cron/ 目錄,若發現有變更,他們就會被載入內存,所以添加任務計劃後並不需要重啓crond服務

 

 

crontab管理用戶的計劃任務

-e 編輯計劃任務列表

-u 指定管理的計劃任務屬於哪個用戶,默認只針對當前用戶(自己) (root權限)

-l 列表顯示計劃任務

-r 刪除計劃任務

clip_p_w_picpath030

上面爲沒到星期天的晚上8點零1分則執行後面的命令

 

符號 * 表示取值範圍中的任意時間

“-”減號表示一個連續範圍

“,”逗號表示一個間斷的不連續範圍

“/”斜槓表示時間頻率如 */3 表示每隔 3

 

 

來做一個案例:

每天早上7:30自動開啓sshd服務,22點50時關閉sshd服務

每隔五天清空一次FTP服務器公共目錄/var/ftp/pub/中的數據

每週六的7:30時重啓系統中的http服務

每週一週三週五的下午17:30 ,使用tar命令自動備份/etv/httpd目錄

clip_p_w_picpath032

 

查看指定用戶的任務計劃:

clip_p_w_picpath034

 

通過隊列查看:

clip_p_w_picpath036

 

刪除指定用戶的任務計劃

clip_p_w_picpath037

 

clip_p_w_picpath039

刪除後,任務計劃列表爲空

本文檔完畢!!!

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