天天看點

程序和計劃任務管理

要求:

管理系統中的程序

啟動系統中的portmap服務,然後使用kill指令終止它的運作。

步驟:

使用service指令啟動portmap服務并确認運作狀态,使用pgrep指令檢視portmap服務的程序,再使用kill指令終止。如圖所示:

查找系統中CPU占用率超過80%的程序,并強行終止程序。

插入軟體包CD光牒,挂載到目錄/media下,然後将源代碼包釋放到/sbin目錄中。如圖所示:

切換一個字元終端,繼續以root管理者登入,然後進入到/sbin目錄下。如圖所示:

在/sbin目錄裡可以看到需要的軟體,此時它是一個普通的檔案,那是因為暫時沒有權限執行。如圖所示:

使用chmod指令将其權限放開。如圖所示:

然後執行“./cpuburn-in  10”指令運作軟體,進行十分鐘的CPU高負載測試。如圖所示:

使用top指令檢視程序。如圖所示:

在“動态程序資訊”界面中,可以發現CPU占用率最高的程序。如圖所示:

在“動态程序資訊”界面中,按k鍵,然後在清單上方将會出現“PID to kill:”的提示資訊,根據提示輸入指定程序的PID号并回車确認即可殺死對應的程序。如圖所示:

ps指令——檢視靜态的程序統計資訊(Processes Statistics)

ps指令是Linux系統中最為常見的程序檢視工具,主要用于顯示包含目前運作的各程序完整資訊的靜态快照。

a:顯示目前終端下的所有程序資訊,包括其他使用者的程序。與“x”選項結合時将顯示系統中所有的程序資訊。

u:使用以使用者為主的格式輸出程序資訊。

x:顯示目前使用者在所有終端下的程序資訊。

-e:顯示系統内的所有程序資訊。

-l:使用長(Long)格式顯示程序資訊。

-f:使用完整(Full)格式顯示程序資訊。

top指令——檢視程序動态資訊

若希望以動态重新整理的方式顯示各進城的狀态資訊,可以使用top指令。top指令将會在目前終端以全屏互動式的界面顯示程序排名,及時跟蹤包括CPU、記憶體等系統資源占用情況,預設情況下每三秒重新整理一次,其作用基本類似于Windows系統中的“任務管理器”。

在top迷指令的全屏操作界面中,可以按P鍵根據CPU占用情況對程序清單進行排序,或按M鍵根據記憶體占用情況進行排序,按N鍵根據啟動時間進行排序,按h鍵可以獲得top程式的在校幫助資訊,按p鍵可以正常的退出top程式。

若通過top排名工具發現某個程序CPU占用率非常高,需要終止該程序的運作時,可以在top操作界面中按k鍵,然後在清單上方将會出現“PID to kill:”的提示資訊,根據提示輸入指定程序的PID号并回車确認即可殺死對應的程序。

pstree指令——檢視程序樹

pstree指令可以輸出Linux系統中各程序的樹形結構,以更加直覺的判斷出各程序之間的互相關系(父、子程序)。pstree指令預設情況下隻顯示各程序的名稱,結合“-p”選項使用時可以同時列出對應的PID号,結合“-u”選項可以列出對應的使用者名,結合“-a”選項可以列出完整的指令資訊。

啟動程序

由使用者手工輸入指令或者可執行程式的路徑,可以至少啟動一個程序。啟動背景程序需要使用“&”操作符,将“&”操作符放在要執行指令的最後面,程序啟動後會直接放入背景運作,而不占用前台的指令操作界面,友善使用者進行其他操作。

排程啟動程序

程序的排程啟動可以通過at、crontab指令進行設定,其中at指令用于設定一次性計劃任務,crontab用于設定周期性運作的計劃任務。排程啟動的計劃任務程序均在背景進行,不會占用使用者的指令終端。

改變程序的運作方式

挂起目前的程序

當Linux系統中的指令正在前台執行時(運作尚未結束),按Ctrl+Z組合鍵可以将目前程序挂起(調入背景并停止執行),這種操作在需要暫停目前程序并進行其他操作時特别有用。

檢視背景的程序

需要檢視目前終端中在背景運作的程序任務時,可以使用jobs指令,結合“-l”選項可以同時顯示出該程序對應的PID号。

将背景的程序恢複運作

使用bg(BackGround,背景)指令,可以将背景中暫停執行(如按Ctrl+Z組合鍵挂起)的任務恢複運作,繼續在背景執行操作;而使用fg指令(FroeGround,前台),可以将背景任務重新恢複到前台運作。

除非背景中的任務隻有一個,否則gb和fg指令都需要指定背景程序的任務編号作為參數。

終止程序執行

使用kill指令終止程序

通過kill指令終止程序時,需要使用程序的PID号作為參數。無特定選項時,kill指令将給該程序發送終止信号并正常退出運作,若該程序已經無法響應終止信号,則可以結合“-9”選項強行殺死程序。強制終止程序時可能會導緻程式運作的部分資料丢失,是以不到不得已不要輕易使用“-9”選項。

使用killall指令終止程序

使用killall指令可以通過程序名來殺死程序,當需要結束系統中多個相同名稱的程序時,使用killall指令将更加友善,效率更高。Killall指令同樣也有“-9”選項。

使用pkill指令終止程序

使用pkill指令可以根據程序的名稱、運作該程序的使用者、程序所在的終端等多種屬性終止特定的程序,大部分選項域pgrep指令基本類似,如“-U”(指定使用者)、“-t”(指定終端)等選項,使用起來非常友善。

設定計劃運作的系統管理任務

每周一的早上7:50自動清空FTP伺服器公共目錄下“/var/ftp/pub”中的資料

檢視crond服務的啟動狀态。如圖所示:

然後執行指令“crontab  -e”進行編輯任務計劃。如圖所示:

接着輸入任務計劃。如圖所示:

每天晚上的10:30自動執行任務,完成以下操作:顯示目前的系統時間并檢視已經挂載磁盤分區的磁盤使用情況,将輸出結果儲存到檔案/var/log/df.log中,以便持續觀察硬碟空間的變化

       執行指令“crontab -e”,然後根據要求編寫任務計劃。如圖所示:

确認所設定的計劃任務清單

       執行指令“crontab -l”檢視任務計劃清單。如圖所示:

計劃任務管理

at一次性任務設定

使用at指令設定的計劃任務隻在指定的時間點執行一次,前提是對應的系統服務atd必須已經運作。需要注意的是:計劃執行任務的時間、日期必須安排在目前系統的時刻之後,否則将無法正确設定計劃任務。

設定一次性計劃任務時,在at指令行中依次指定計劃執行任務的時間、日期作為參數(若隻指定時間則表示當天的該時間,若隻指定日期則表示該日期的目前時間),确認後将進入帶“at>”提示符的任務編輯界面,每行設定一條執行指令,可以依次設定多條語句,最後按Ctrl+D送出任務即可。所設定的指令操作将在計劃的時間點被依次執行。

修改時間或日期:date  -s,基本使用格式:

date  -s 月/日/年         或          date -s  時:分:秒

同時修改時間和日期:date  月日時分年.秒   例如:

date       022416352013.30

hwclock 硬體時間(BIOS)

date     系統時間(軟體)

如果同步系統時間:hwclock --systohc

如果同步硬體時間:hwclock --hctosys

crontab周期性任務設定

crontab的配置檔案和目錄

/etc/crontab——系統任務配置檔案

/etc/crontab檔案中設定的是維護Linux系統所需的任務,由Linux系統及相關程式在安裝時自動設定,不建議使用者手動修改此檔案。

/var/spool/cron——使用者cron任務的配置檔案存放目錄

由使用者自行設定(使用crontab指令)的cron計劃任務将被儲存到目錄/var/spool/cron/中,檔案名與使用者名相同。

使用crontab指令管理使用者的計劃任務

設定使用者的周期性計劃任務清單主要通過crontab指令進行,結合不同的選項可以完成不同的計劃任務管理操作。

-e:編輯計劃任務清單

-u:指定所管理的計劃任務屬于哪個使用者,預設時針對目前使用者(自己),一般隻有root使用者有權限使用此選項(用于編輯、删除其他使用者的計劃任務)

-l:清單顯示計劃任務

-r:删除計劃任務清單

執行“crontab -e”指令後,将打開計劃任務編輯界面(與vi中的操作相同)。通過該界面使用者可以自行添加具體的任務配置,每行代表一個記錄,配置的格式與/etc/crontab檔案中的主體部分類似。

每一行任務配置記錄,都包括六個資料字段,分别表示不同的含義。

由于各字段的作用不同,其取值範圍也不一樣,當使用“*”時表示取值範圍中的任意時間。crontab任務配置記錄中所設定的指令操作将在“分鐘(取值為從0~9的任意整數)”+“小時(取值為從0~23的任意整數)”+“日期(取值為從1~31的任意整數(日期在該月份中必須有效))”+“月份(取值為從1~12的任意整數)”+“星期(取值為從0~7的任意整數,0或7代表星期日)”都滿足的條件下執行。

除了“*”以後,還可以使用減号“-”、逗号“,”、斜杠“/”與數字構成表達式來表示較複雜的時間關系:

減号“-”:可以表示一個連續的時間範圍,如“1-4”表示整數1、2、3、4。

逗号“,”:可以表示一個間隔的不連續範圍,如“3,4,6,8”。

斜杠符号“/”:可以用來指定間隔頻率,如在日期字段中的“*/3”表示每隔3天。

繼續閱讀