Linux計劃任務和進程

一、進程管理
1.進程簡介

一個程序對應多個進程;一個進程對應一個程序。

2.進程狀態的查看與控制

查看進程狀態

w 查看個別用戶的進程 eg: w userName

list-info
JCPU:
PCPU:
WAHT:
from:
IDLE: 用戶空閑時間
load average:

ps -aux

-a: 顯示所有用戶的進程
-u:顯示用戶名和啟動時間
-x:顯示沒有控制終端的內容

ps -el

-e:顯示所有進程,包括沒有控制終端的進程
-l:以長格式顯示進程

list-info
PID:進程號
PPID:父進程的進程號
TTY:進程啟動的終端
STAT:進程當前的狀態
S :休眠
D :不可中斷的休眠
R :運行
Z :僵死
T :停止
NI:進程優先級
TIME:進程啟動總時間
COMMAND:進程名稱

查看進程排序
ps -aux –sort pid[PID/TIME/UID/PPID/TTY/STAT]

查看進程篩選
ps -aux|grep processName

殺死或重新啟動進程

為什么要殺死進程:
占資源;進程死了;執行時間長,沒效果。。。

命令:
kill pid
kill -9 pid

kill -s 信號 pid
kill -l 列出所有的信號

killall 進程名(CMD) 殺死所有相關的進程

改變進程的運行優先級(-20, 19)

nice -n command & 指定程序運行優先級
renice n pid 改變一個正在運行的程序的優先級

實時查看進程狀態
top 默認5秒刷新一次
top -d 1
top -c 顯示整個命令行,不僅是命令名
top -d 1 -c 設置1秒刷新一次
top -q 立刻更新所顯示的信息

進程的掛起和恢復

正在運行,掛起可以 ctrl + z

如果開啟時,可以在后邊使用&
command &
command
ctrl + c ctrl + z

jobs

fg4

bg4

二、任務計劃
3.一次性安排進程任務

at 安排作業,某個程序在某一時刻執行一次

第一步:開啟atd service atd start

第二步:添加一個任務

格式:at time

eg: 在10:20的時候,執行一個命令,插入一行文字到某個文本里邊
at 10:20
>/bin/cp -r /root/* /home/bruce
>/bin/echo “2222222222” > /home/bruce/1.txt

注意:一定要使用命令的全路徑

ctrl + d 完成

time說明:

絕對計時方法
midnight noon teatime
HH:MM [today]
HH:MM tomorrow
HH:mm 星期
HH:MM mm/dd/yyyy

相對計時方法
now + n minutes
now + n hours
now + n day

第三步:查看任務

at -l 查看 或者 atq查看

第四步:刪除一個任務

at -d 任務號 或者 atrm 任務號

第五步:使用命令文件的方式

at -f 文件 時間點
at < 文件 時間點

第六步:at的執行結果和配置文件

/etc/at.allow
如果這個文件存在,那么只有在列在測文件中的用戶才能使用at命令;
如果這個文件不存在,則查/etc/at.deny;

/etc/at.deny
如果這個文件存在,則在此文件中的列出的用戶都不能使用at命令;

如果兩個文件都不存在,則只有root用戶可以使用at命令;

如果兩個文件都存在,而且均為空,則所有用戶都可以使用at命令。

附件:
batch 安排作業,某個程序在系統負載不重時執行一次

4.周期性安排進程任務

crond

①service crond start 開啟服務
crond 進程搜索crontab文件并載入內存

crontab文件即/var/spool/cron/目錄下以用戶名命名的文件

crond進程啟動以后,他將首先檢查是否用戶設置了crontab文件,如果沒有,轉入“休眠”狀態,釋放系統資源

crond進程每分鐘醒來一次,查看crontab文件,決定當前是否有需要執行的命令,執行結束后,然后輸出都將作為郵件發送給crontab的所有者

②crontab -e 創建編輯crontab文件
eg: */1 * * * * /bin/pc

任務包括兩個內容:時間 + 操作
a.時間
minute : 一小時中的哪一分鐘[ 0 – 59 ]
hour : 一天中的哪一個小時[ 0 – 23 ]
day-of-month: 一個月中的哪一天 [ 1 – 31 ]
month-of-year: 一年中的那一個月 [ 1 – 12 ]
day-of-week: 一周中的哪一天 [ 0 – 6 ]

b.操作
commands: 執行的命令, 命令要是用絕對路徑

這些項不能為空,必須填入

如果用戶不需要指定其中的幾項, 那么可以使用通配符號“*”表示任何時間

每個時間字段都可以指定多個值,用”,”間隔
eg: 每天的1點和3點 * 1,3 * * * commands

每個時間字段都可以指定范圍,用”-“間隔
eg: 每天的8點到10點 * 8-10 * * * commands

每個時間字段都可以使用間隔,用/表示
eg: 每隔一分鐘 */1 * * * * commands

用戶必須具有運行所對應命令或程序的權限

③查看 crontab -l

④刪除 crontab -r

⑤crontab的配置文件,限制哪些用戶可以使用crontab命令,規則與at一致

/etc/cron.allow

/etc/cron.deny

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/86708

(0)
1589344251815893442518
上一篇 2017-09-09 18:22
下一篇 2017-09-09 20:03

相關推薦

  • linux的CentOS系統啟動故障與修復

        以CentOS 6為例,系統的啟動流程為: 1.開機post加電自檢 2.MBR引導 3.通過grub加載內核 4.加載根 5.加載系統中的第一個進程 6.進行初始化 7.出現登錄界面     其中主要的啟動環節是grub引導計算機,分為三個階段:一階段發生在mbr的446字節中;一點五階段在mbr后續的扇區中…

    2017-09-03
  • N22-第三周課堂練習

    — 1.列出當前系統上所有已經登錄的用戶的用戶名,注意:用一個用戶登錄多次,則只顯示一次即可。     who | awk '{print $1}' | uniq 2.取出最后登錄到當前系統的用戶相關信息。   last | head -n 1 3.取出當前系統上被用戶當作其默認shell的最多的…

    Linux干貨 2016-08-30
  • LVS-幾種負載方式的區別

    LVS的原理很重要,很重要。每一個知識點都要做到熟記與腦,謹記于心,張口就來。 LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。 使用集群技術和Linux操作系統實現一個高性能、高可用的服務器. 很好的可伸縮性(Scal…

    Linux干貨 2017-05-11
  • 第四周:/etc/passwd、/etc/group文件熟悉及配合grep使用正則表達式

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@wlm ~]# useradd tuser1 [root@wlm ~]# cp -r etc/skel/ /home/tuser1/…

    Linux干貨 2016-10-13
  • Liunx系統命令的使用格式

    Liunx系統命令的格式 基本格式如下:               ~]# COMMAND OPTIONS ARGUMENTS COMMAND:      發起一個命令,請求內核將某個二進…

    Linux干貨 2016-10-28
  • 設計模式(十一)代理模式Proxy(結構型)

    1.概述        因為某個對象消耗太多資源,而且你的代碼并不是每個邏輯路徑都需要此對象, 你曾有過延遲創建對象的想法嗎 ( if和else就是不同的兩條邏輯路徑) ? 你有想過限制訪問某個對象,也就是說,提供一組方法給普通用戶,特別方法給管理員用戶?以上兩種需求都非常類似,并且都需要解決一個更大的問題:你如何提供…

    Linux干貨 2015-07-09
欧美性久久久久