程序和計劃任務管理
一檢視和控制程序
·程式和程序的關系
程式:儲存在硬碟、CD光牒等媒體中的可執行代碼和資料、是靜态儲存的代碼
程序:在cpu及記憶體中運作的程式代碼、是動态執行的代碼
父、子程序:每個程序可以建立一個或多個程序
·檢視程序資訊
1 ps指令
用途:檢視靜态的程序統計資訊
格式:ps [選項]
選項:
a:顯示目前終端下的所有程序資訊,包括其他使用者的程序
x:顯示目前使用者在所有終端下的程序資訊
u:顯示程序的執行者
-e:顯示系統内所有程序資訊
-l:使用長格式顯示程序資訊
-f:使用完成的格式顯示程序資訊
常用以下組合
顯示所有系統程序資訊
以長格式顯示所有系統程序資訊
其中
user:啟動給程序的使用者
pid:該程序在系統中的數字id号,在目前系統中是唯一的
%cpu:cpu占用百分比
%mem:記憶體占用百分比
vsz:占用swap空間的大小
rss:占用常駐記憶體(實體記憶體)的大小
tty:表明程序在哪個終端運作;"?"表示位置或不需要終端
stat:顯示程序的目前狀态:s休眠、r運作、z僵死、<高優先級、n低優先級、s儀程序、+前台程序、
start:啟動該程序的時間
time:該程序占用的cpu時間
command:啟動該程序的指令名稱
執行不帶任何選項的ps指令時,将隻顯示目前使用者會話中打開的程序
2 top指令
用途:檢視動态的程序排名資訊
格式:top
動态的檢視所有程序的狀态資訊
tasks(系統任務資訊): total(總程序數)、running(正在運作的程序數)、sleeping(休眠的程序數)、stopped(終止的程序數)、zombe(僵死無響應的程序數)
cpu(cpu占用資訊):us使用者占用、sy核心占用、ni優先級度占用、id空閑cpu、wa i/o等待占用、hi硬體終端占用、si軟體終端占用、st虛拟化占用
mem(記憶體占用資訊):total總記憶體空間、used已用記憶體、free空閑記憶體、buffers緩存空間
swap(交換空間占用):total總記憶體空間、used已用交換空間、free空閑交換空間、cached緩存空間
top界面是全屏顯示,是以還有以下操作
按p鍵根據cpu占用情況對程序清單進行排序
按m鍵根據記憶體占用情況進行排序
按n鍵根據啟動時間進行排序
按h鍵可以獲得top程式的線上幫助資訊
按q鍵可以正常退出top程式
使用空格鍵可以強制更新程序狀态顯示
3 pgrep指令
用途:根據特定條件查詢程序pid資訊
格式:pgrep –lu "字元"或使用者名
-l:輸出程序名
-u:指定使用者
查詢程序名包含"log"的程序及其pid
查詢使用者root在tty1終端上運作的程序及pid号
4 pstree指令
用途:輸出系統中各程序的樹形結構
格式:pstree –aup
-a:顯示完整資訊
-u:列出對應使用者名
-p:列出對應pid号
檢視目前系統的程序樹
檢視root使用者打開的程序樹
·控制程序
程序的啟動方式
1手工啟動
手工前台啟動:使用者輸入指令,直接執行程式;要等待程序結束才能繼續吓一跳指令
手工背景啟動:在指令行尾加入"&"符号;無需等待,适用于耗時較長的程序
拷貝一個大檔案時可以使用背景啟動;或提示程序号
2排程啟動
使用at指令,設定一次性計劃任務
使用crontab指令,設定周期性計劃任務
稍後詳解
改變程序的運作方式
1挂起目前的程序
ctrl+z 組合鍵:将目前程序挂起,即調入背景并停止執行
2檢視背景程序
jobs指令:檢視處于背景的任務清單;加-l 顯示程序号
3恢複背景停止的程序到前台運作
fg指令:将處于背景的程序恢複到前台運作,需指定任務序号
4恢複背景停止的程序到背景繼續運作
bg指令:恢複背景停止的程序到背景繼續運作,需指定任務序号
終止程序
1中斷正在執行的指令
ctrl+c組合鍵
2終止指定pid号的程序
先用pgrep查詢指定程序的pid号
kill用于終止指定pid号的程序
-9 選項用于強制終止;若該程序已經無法響應終止信号,則可以結合"-9"選項強行殺死程序;強制終止程序時可能會導緻程式運作的部分資料丢失,不要輕易使用"-9"選項
3終止指定名稱的所有程序
killall用于終止指定名稱的所有程序
4根據特定條件終止相應的程序
pkill指令
用途:根據特定條件終止相應的程序
常用指令選項:
-u:根據程序所屬的使用者名終止相應程序
-t:根據程序所在的終端終止相應程序
二 計劃任務
·at指令
一次性計劃任務,確定atd服務在運作
使用at指令設定的任務隻在指定時間點執行一次,若隻指定時間則表示當天的該時間,若隻指定日期則表示該日期的目前時間
可以在at互動環境中輸入多條指令,最後按ctrl+d組合鍵送出
服務腳本名稱:/etc/init.d/atd
設定格式:at [hh:mm] [yyyy-mm-dd]
1當天的指定時間執行某任務
若隻指定時間則表示當天的該時間
自動關機
2指定的日期執行某任務
3檢視計劃的任務
隻能檢視未執行的
4删除計劃任務
删除第三條計劃任務
·crontab指令
按照預先設定的時間周期(分鐘、小時、天……)重複執行使用者指定的指令操作,屬于周期性計劃任務
啟用周期性任務有一個前提條件,即對應的系統服務crond必須已經運作
服務腳本名稱:/etc/init.d/crond
主要設定檔案
全局配置檔案,位于檔案:/etc/crontab
系統預設的設定,位于目錄:/etc/cron.*/
使用者定義的設定,位于檔案:/var/spool/cron/使用者名
管理cron計劃任務
root使用者可以管理指定使用者的計劃任務普通使用者隻能管理自己的計劃任務
使用者隻需執行"crontab -e"指令後會自動調用文本編輯器(預設為vi)并打開"/var/spool/cron/使用者名"檔案,無需手動指定檔案位置
編輯計劃任務:crontab -e [-u 使用者名]
檢視計劃任務:crontab -l [-u 使用者名]
删除計劃任務:crontab -r [-u 使用者名]
crontab任務配置的格式:時間周期設定 任務内容設定
時間周期包括五個字段:分鐘 小時 日期 月份 星期
例如
周一到周五每天17:00關機
時間數值的特殊表示方法
* 表示該範圍内的任意時間如"3, 4, 6, 8"
, 表示間隔的多個不連續時間點;
- 表示一個連續的時間範圍;如"1-4"表示整數1,2,3,4
/ 指定間隔的時間頻率;如在日期字段中的"*/3"表示每隔3天
應用示例
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8點30分
0 8-18/2 * * * 8點到18點之間每隔2小時
0 * */3 * * 每隔3天
示例1(root使用者):
每天早上7:50自動開啟sshd服務,22點50時關閉
每隔5天清空一次ftp伺服器公共目錄/var/ftp/pub
每周六的7:30時,重新啟動httpd服務
每周一、三、五的17:30時,打包備份/etc/httpd目錄
示例2(jerry使用者)
每周日晚上23:55時将"/etc/passwd"檔案的内容複制到宿主目錄中,儲存為pwd.txt檔案
示例3:
root使用者檢視自己的計劃任務清單
檢視并删除jerry使用者設定的計劃任務