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”

init用于設定系統的運作級别
init 3 進入字元界面的完整模式
init 0 關機
init 6 重新開機
設定系統服務在不同運作級别中的狀态:
ntsysv調出一個互動式界面,用于集中配置系統服務的啟動狀态
ntsysv --level 35 同時對運作級别3,5 進行系統服務啟動狀态的設定
星号選中為開機啟動,為空是開機不啟動 F1 獲得該服務的詳細說明
chkconifg與ntsysv功能類似,對單一的服務設定較友善
--list 顯示所有服務的所有運作狀态(後跟服務名則顯示這一個服務狀态)
--level 35 服務名 on/off 在運作級别35中開啟或關閉該服務
缺少—level 35 選項時,預設在2345中都設定
程序管理>>
檢視程序:
ps檢視靜态程序的統計資訊
-a 顯示目前終端所有程序,包括其他使用者程序,與-x 結合用,将顯示系統中所有程序資訊
-u 使用以使用者名為主的格式輸出資訊
-x 顯示目前使用者在所有終端下的程序資訊
-e 顯示系統内所有程序資訊
-l 以長格式顯示
-f 使用完整格式顯示
各個字段的含義:
USER:啟動該程序的使用者賬号
PID:該程序在系統的ID号(唯一的)
%CPU:該程序占用的CPU(百分比)
%MEM 該程序占用的記憶體百分比
VSZ:占用的虛拟記憶體
RSS:占用的實體記憶體
TTY:在哪個終端運作(?表示未知或不需要終端)
SATA: 程序的狀态(S表示休眠,R表示運作,Z表示僵死,<表示高優先級,N表示低優先級,s表示父程序,+ 表示前台運作)
START: 開始時間
TIME:占用的CPU時間
COMMAND:啟動該程序的指令的名稱
top 檢視程序的動态資訊(預設3秒重新整理一次)
按P:根據CPU占用情況對程序清單進行排序
M:根據記憶體占用情況對程序清單進行排序
N:根據啟動時間排序
h: 獲得幫助
q: 退出
k:殺死某一程序
pgrep查詢特定程序的資訊
-U 針對某個使用者查詢
-t 針對某個終端查詢
-l 同時列出對應的程序名
pstree檢視程序樹
-p 同時列出對應的PID
-u 列出對用的使用者名
-a 列出完整的指令資訊
檢視到了luojunyong使用者現在的操作,及對應PID
程序背景運作:
有些耗時的程序,我們可以放在背景運作,而不影響我們的繼續工作,我們可以加”&”号來改變程序的運作方式,如,cp–avf /media/ ./ &這樣這個任務就在背景運作了
有時要用nohup指令表示不再終端螢幕上顯示
jobs幫助我們看到正在運作的程序 jobs –l 連同PID一同顯示出來
終止程序:
kill 終止程序
-9 強制殺死
killall終止系統中多個形同名字的程序時用此很友善
pkill根據各種屬性來終止程序
-U 指定使用者
-t 指定終端
killall殺同名程序
已經無程序了,pkill可以根據各種情況來選擇性的殺死
計劃任務管理
at 一次性計劃任務
首先包證atd服務的運作
确定現在的時間并加一個計劃任務:
最後按CTRL+D 來送出
可以看出已經執行了
atq查詢目前系統中的任務清單
atrm删除目前系統中的任務清單
我們也可用 at now+5minutes 五分鐘後
at now+5hours 五小時後
at now+5days 五天後
at now+5weeks 五周後
at noon 中午12點
at midnight 晚上零點
at teatime 下午4點(下午茶)
等來指定任務計劃
上圖在午夜零點檢視記憶體狀态并記錄
在3小時後檢視CPU狀态并記錄
檢視任務清單
删除一個代号為3的計劃任務
在次檢視時,已經就剩一個任務計劃了
列隊裡能檢視具體内容:
crontab周期性任務設定
確定服務運作狀态:
配置檔案:
/etc/crontab系統任務配置檔案
上面為每行為:
腳本用的shell類型
執行路徑
任務輸出資訊發送到指定使用者信箱
執行任務計劃時所使用的主目錄
藍色字型為範例:告訴我們格式應該寫成:分時天月周指令或腳本
/etc/cron*
上面的目錄分别放入我們指定的任務腳本到每天,每月,每小時,每星期各個目中去
/var/spool/cron/*
cron任務将被儲存在上個目錄,檔案名與對應的使用者賬号同名
crond程序會每分鐘都會檢查/etc/crontab /etc/cron.d /var/spool/cron/ 目錄,若發現有變更,他們就會被載入記憶體,是以添加任務計劃後并不需要重新開機crond服務
crontab管理使用者的計劃任務
-e 編輯計劃任務清單
-u 指定管理的計劃任務屬于哪個使用者,預設隻針對目前使用者(自己) (root權限)
-l 清單顯示計劃任務
-r 删除計劃任務
上面為沒到星期天的晚上8點零1分則執行後面的指令
符号 * 表示取值範圍中的任意時間
“-”減号表示一個連續範圍
“,”逗号表示一個間斷的不連續範圍
“/”斜杠表示時間頻率如 */3 表示每隔 3
來做一個案例:
每天早上7:30自動開啟sshd服務,22點50時關閉sshd服務
每隔五天清空一次FTP伺服器公共目錄/var/ftp/pub/中的資料
每周六的7:30時重新開機系統中的http服務
每周一周三周五的下午17:30 ,使用tar指令自動備份/etv/httpd目錄
檢視指定使用者的任務計劃:
通過隊列檢視:
删除指定使用者的任務計劃
删除後,任務計劃清單為空
本文檔完畢!!!