工作管理
1、工作管理簡介
Linux中的工作管理指的是在單個登錄的終端中,同時管理多個工作的行爲。在Linux工作管理中,其實就是將當前的工作放到後臺執行。查詢當前系統中的後臺程序使用的命令是jobs。
在Linux中,當某些服務啓動之後,如果不放入後臺,他會一直佔用當前的shell,例如MYSQL。如果想要執行其他操作的話,需要將mysql服務終止掉。如果不想將該服務終止,就需要將該服務放入後臺。
注意事項:
a> 當前的登錄終端,只能管理當前終端的工作,而不能管理其他登錄終端的工作。
也就是說,放入後天的服務是需要綁定終端的。Mysql服務發現了這個問題,當調用mysql服務的啓動腳本時,它會將MySQL設置爲可以脫離當前終端操作的服務,當MySQL服務在當前終端上放入後臺時,關閉當前終端,mysql服務不會終止,但其他服務如果關閉的當前終端,服務也會跟着結束。
b> 放入後臺的命令必須可以持續運行一段時間,這樣我們才能捕捉和操作這個工作
例如:將ls、cd等命令房後後臺是沒有意義的,回車之後就會結束
c> 放入後臺執行的命令不能和當前用戶有交互或需要前臺輸入,否則放入後臺只能暫停,而不能執行
例如:將vim命令放入後臺,只能暫停,不肯能繼續執行。因爲vim命令是需要和用戶進行交互的。
2、工作管理方法
1> 把命令放入後臺<以top命令爲例>
在執行的命令後加" & ” # 把命令放入後臺,並在後臺執行 top # 按下ctrl+z快捷鍵,放在後臺暫停
2> 查看後臺工作
jobs [-l] # -l 顯示工作的PID
注: “+”表示最近一個放入後臺的工作,也是工作恢復時默認恢復的工作,“-”表示倒數第二個放入後臺的工作
3> 將後臺暫停的工作恢復到前臺執行
fg %工作號 # %可以省略,但是注意工作號和PID的區別
4> 把後臺暫停的工作恢復到後臺執行
bg %工作號 # 後臺恢復執行的命令,是不能和前臺有交互的,否則不能恢復到後臺執行
3、後臺命令脫離登錄終端執行
一般情況下,一旦把命令放入後臺,只能在當前登錄終端執行。一旦退出或關閉終端,後臺程序就會停止。
後臺命令脫離登錄終端執行的方法:
1> 把需要後臺執行想命令加入到/etc/rc.local 文件
開機默認創建文件 /var/lock/subsys/local,目的是爲了查看系統開機時間。
如果想要後臺運行的一個程序持續運行,可以把這個進程完全寫到該文件中,那麼該進程就可以持續運行。因爲它是系統直接調用的,沒有綁定到終端。
2> 使用系統定時任務crontab,讓系統在指定的時間執行某個後臺命令
使用系統定時任務,可能會導致不生效!!!
3> 使用nohup命令
命令格式:
nohup [命令] &
在 /root 目錄下創建文件 for.sh,內容如下: nohup運行該文件 切換終端,然後可以通過 ps aux | grep for.sh 查看
|
系統資源管理
※1、vmstat命令監控系統資源
vmstat [刷新延時 刷新次數]
procs:進程信息字段
r:等待運行的進程數,數量越大,系統越繁忙
b:不可被喚醒的進程數,數量越大,系統越繁忙
memory:內存信息字段
-swpd:虛擬內存的使用情況,單位KB
-free:空閒的內存容量,單位KB
-buff:緩衝的內存容量,單位KB
-cache:緩存的內存容量,單位KB
緩存和緩衝的區別: 緩存(cache)是用來加速數據從硬盤中”讀取”的,而緩衝(buffer)是用來加速數據”寫入”硬盤的。 |
swap:交換分區的信息字段
-si:從磁盤中交換到內存中數據的數量,單位KB
-so:從內存中交換到磁盤中數據的數量,單位KB,
兩個數越大,證明數據需要經常在磁盤和內存之間交換,系統性能越差
io:磁盤讀寫信息字段
-bi:從塊設備讀入數據的總量,單位是塊
-bo:寫到塊設備的數據的總量,單位是塊。
兩個數越大,代表系統的I/O越繁忙
system:系統信息字段:
-in:每秒被中斷的進程次數
-cs:每秒鐘進行的事件切換次數。
兩個數越大,代表系統與接口設備的通信飛航繁忙
cpu:CPU信息字段
-us:非內核進程消耗CPU運算時間的百分比
-sy:內核進程消耗CPU運算時間的百分比
-id:空間CPU的百分比
-wa:等待I/O所消耗的CPU百分比
-st:被虛擬機所盜用的CPU佔比
※2、dmesg開機時內核檢測信息
dmesg | grep CPU
顯示系統的內核自檢信息,對Linux來將,計算機需要自檢兩遍,一是硬件的BIOS自檢,二是內核自檢
dmesg命令是用來判斷當前服務器的硬件狀態。
※3、free命令查看內存使用狀態
free [-b | -k | -m | -g]
選項:以 字節 | Kb | MB | GB 爲單位顯示,默認爲Kb
- buffers/cache:相當於第一行used - buffers - cached
+ buffers/cache:相當於第一行free + buffers + cached
雖然看起來buffer和cached 佔用了一部分內存,但實際上是作爲緩衝和緩存存在,沒有被系統的程序直接佔用,是爲了提高系統讀寫效率存在的
最後一行表示Swap的使用狀況,swap是提高計算機性能尤其是高耗費內存性能的重要手段,因此不可以隨意減少Swap分區的容量。當真實機內存小於4G,swap應該是內存的兩倍,如果真實機的內存大於4G,swap最少要和內存一樣。
※4、查看CPU信息
cat /proc/cpuinfo
proc是用來保存內存信息的目錄
※5、uptime命令
uptime
顯示系統的啓動時間和平均負載,也就是top命令的第一行。w命令也可以看到這個數據。
uptime命令可以查看到系統當前時間,開機到現在的時間,登錄用戶數目,平均負載。和top命令第一行信息一致,但top命令本身就會造成一定的負載,如果只是簡單想查看系統啓動時間和平均負載,可以用uptime命令。
※6、查看系統與內核相關信息
uname [選項]
選項: -a:查看系統所有相關信息
-r:查看內核版本
-s:查看內核名稱
※7、查看當前Linux系統的操作位數
file /bin/ls
file之後可以追加任何一個系統外部命令,可以查看到當前操作系統的位數。需要注意的是,這裏的位數與CPU的位數不一定相同,64的的電腦上也可以安裝32位的操作系統
※8、查詢當前Linux的發行版本
lsb_release -a
※9、列出進程打開或使用的文件信息
lsof [選項]# 列出進程調用或打開的文件的信息
選項:
-c 字符串:只列出字符串開頭的進程打開的文件
-u 用戶名:只列出某個用戶的進程打開的文件
-p pid:列出某個PID進程打開的文件
根據文件名查進程,文件只能是系統文件,不能是用戶自己創建的文件,只有系統文件才有系統進程
系統定時任務
Windows中的系統定時任務:開始-- >所有程序-- >附件-- > 系統工具-- >定時計劃程序
at一次性定時任務
1> 確定at安裝
chkconfig --list | grep atd # at服務是否安裝 service atd restart # at服務重新啓動
在服務名後加 d ,表明這是一個守護進程
2> at的訪問控制
l 如果系統中有 /etc/at.allow(白名單)文件,那麼只有寫入/etc/at.allow 文件中的用戶可以使用at 命令(/etc/at.deny文件會被忽略)
l 如果系統中沒有 /etc/at.allow (黑名單)文件,只有 /etc/at.deny 文件,那麼寫入 /etc/at.deny 文件中的用戶不能使用at命令,但對root 用戶不起作用
l 如果系統中這兩個文件都不存在,那麼只有root用戶可以使用at命令。默認情況下只有黑名單
3> at命令的使用
at [選項] 時間
選項:
-m:當at工作完成後,無論是否命令有輸出,都用email 通知執行at命令的用戶
-c 工作號:顯示該at工作的實際內容
時間:
- HH:MM例如:02:30
- HH:MM YYYY-MM-DD例如:02:30 2013-07-25
- HH:MM [am|pm] [month] [date]例如:02:30 July 25
- HH:MM [am|pm] + [minutes|hours|days|weeks]例如:now + 5minutes
其他at管理命令
atq # 查詢當前服務器上的at工作 atrm [工作號] # 刪除指定的at任務
at定時任務執行完畢之後,atq就不會再查詢到at任務
crontab定時任務
關於crontab定時任務,要介紹的細節比較多,這裏作爲一個單獨的文章來寫,鏈接如下:
http://muhuizz.blog.51cto.com/11321490/1868839
---------muhuizz整理