第十一章 計劃任務-centos7.5知識
一、程式和程序的關係
ps
程式
儲存在硬碟、光碟等介質中的可執行程式碼和資料
靜態儲存的程式碼
程序
在 CPU 及記憶體中執行的程式程式碼
動態執行的程式碼
父、子程序
每個程序可以建立一個或多個程序
檢視程序資訊 ps
ps命令
檢視靜態的程序統計資訊
Ps aux 或ps –elf
top命令
– 檢視動態的程序排名資訊
• 可適當介紹top工具的命令按鍵:P、M、N、h、q
• 按P鍵根據CPU佔用情況對程序列表進行排序
• 按M鍵根據記憶體佔用情況進行排序
• 按N鍵根據啟動時間進行排序
• 按h鍵可以獲得top程式的線上幫助資訊
• 按q鍵可以正常退出top程式
• 使用空格鍵可以強制更新程序狀態顯示
pgrep命令
• 根據特定條件查詢程序 PID 資訊
• [[email protected] ~]# pgrep -l "log"
• 2538 rsyslogd
• 2113 mcelog
• [[email protected] ~]# pgrep -l -U teacher -t tty1
• 27483 bash
• 27584 vim
pstree –aup
• pstree命令
– 以樹形結構列出程序資訊
pstree -aup
pstree -ap teacher
-a:顯示完整資訊
-u:列出對應使用者名稱
-p:列出對應PID號
二、程序的啟動方式
• 手工啟動
– 前臺啟動:使用者輸入命令,直接執行程式
– 後臺啟動:在命令列尾加入“&”符號
– 排程啟動 :計劃任務
– 使用 at 命令,設定一次性計劃任務
程序的前後臺排程
• Ctrl+Z 組合鍵
– 將當前程序掛起,即調入後臺並停止執行
• jobs 命令
– 檢視處於後臺的任務列表
• fg 命令
– 將後臺程序恢復到前臺執行,可指定任務序號
• [email protected] ~]# jobs
• [1]- Stopped cp /dev/cdrom mycd.iso
• [2]+ Stopped top
• [[email protected] ~]# fg 1
終止程序的執行
• Ctrl+C 組合鍵
– 中斷正在執行的命令
• kill、
• killall 命令
– kill用於終止指定PID號的程序
– killall用於終止指定名稱的所有程序
– -9 選項用於強制終止
• pkill命令
– 根據特定條件終止相應的程序
– 常用命令選項
• -U:根據程序所屬的使用者名稱終止相應程序
• -t:根據程序所在的終端終止相應程序
• [[email protected] ~]# pgrep –l -U "hackli"
• 3045 bash
• [[email protected] ~]# pkill -9 -U "hackli”
• [[email protected] ~]# pgrep -l -U "hackli”
計劃任務管理
• at命令(按ctrl+d儲存任務)
– 一次性計劃任務
• at [HH:MM] [yyyy-mm-dd]
• [[email protected] ~]# date
• Sun May 7 10:33:13 EDT 2017
• [[email protected] ~]# at 10:35 2017-05-07
• at> pgrep -U root | wc -l > /tmp/ps.root
• at> <EOT>
• job 1 at Sun May 7 10:35:00 2017
• [[email protected] ~]# cat /tmp/ps.root
• 202
[email protected] ~]# at 21:30
at> shutdown -h now
at> <EOT>
job 2 at Sun May 7 21:30:00 2017
[[email protected] ~]# atq
2 Sun May 7 21:30:00 2017 a root
查詢at定義的任務
cd /var/spool/at/
ls –l
[[email protected] ~]# atrm 2
[[email protected] ~]# atq
使用 crontab 命令,設定週期性計劃任務
計劃任務管理 crond
• crontab命令
– 按照預先設定的時間週期(分鐘、小時、天……)重複執行使用者指定的命令操作
– 屬於週期性計劃任務
– 主要設定檔案
• 全域性配置檔案,位於檔案:/etc/crontab
• 系統預設的設定,位於目錄:/etc/cron.*/
• 使用者定義的設定,位於檔案:/var/spool/cron/使用者名稱
• 管理cron計劃任務
– 編輯計劃任務
• crontab -e [-u 使用者名稱] 編輯計劃任務
• crontab -l [-u 使用者名稱] 列出檢視計劃任務
• crontab -r [-u 使用者名稱] 清空計劃任務
crontab 任務配置的格式
• 時間數值的特殊表示方法
– * 表示該範圍內的任意時間
– , 表示間隔的多個不連續時間點
– - 表示一個連續的時間範圍
– / 指定間隔的時間頻率
• 應用示例
– 0 17 * * 1-5 週一到週五每天17:00
– 30 8 * * 1,3,5 每週一、三、五的8點30分
– 0 8-18/2 * * * 8點到18點之間每2小時
– 0 * */3 * * 每3天
作業:
1、定時時間計劃,每週3的15:30分,將日期、時間輸出到/tmp/dateaudit.txt中。
2、寫出檢視到指定執行程序systemd狀態的3個命令及其用法.