ps 查看系統進程命令
啟動進程的方式: 系統啟動過程中自動啟動:與終端無關的進程; 用戶通過終端啟動:與終端相關的進程; 選項: a:所有與終端相關的進程; x:所有與終端無關的進程; u:以用戶為中心阻止進程狀態信息顯示;
常用組合之一:aux [root@centous1 zuoye]# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 19364 1536 ? Ss 16:50 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 16:50 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 16:50 0:00 [migration/0] root 4 0.0 0.0 0 0 ? S 16:50 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S 16:50 0:00 [stopper/0] root 6 0.0 0.0 0 0 ? S 16:50 0:00 [watchdog/0] root 7 0.0 0.0 0 0 ? S 16:50 0:00 [migration/1] root 8 0.0 0.0 0 0 ? S 16:50 0:00 [stopper/1] VSZ:虛擬內存集; RSS:Resident Size(常駐內存); STAT: R:running S:interruptale sleeping(可中斷睡眠) D:uninterruptable sleeping(不可中斷睡眠) T:Stopped Z:zombie(僵尸進程) +:前臺進程 l:多線程進程 N:低優先級進程 <:高優先級進程 s:session leader(進程的最開頭進程) -e:顯示所有進程 -f:顯示完整格式的進程信息 常用組合之二 -ef: -F:顯示完整格式的進程信息; C:cpu utilization(cpu占用率) PSR:運行在哪顆CPU之上 -H:以層級結構顯示進程的相關信息; 常用組合之三:-eFH
pgrep,pkill,top命令:
根據進程名或其他屬性來查詢進程或發送信號 pgrep -t terminel : 與指定的終端相關進程 -l:顯示程序名 -a:顯示完整格式的進程名; -p pid:顯示此進程的子進程 也可以直接加字符串,查看包含字符串的進程 pidof命令: 根據進程名,取其pid top命令: -display linux process
[root@centous1 zuoye]# toptop - 22:02:39 up 5:12(運行時長), 1 user, load average(平均負載): 0.07, 0.06, 0.01(隊列的長度不要超過CPU個數) Tasks(任務): 129 total, 1 running, 128 sleeping, 0 stopped, 0 zombie(僵死) Cpu(s): 0.0%us(用戶空間進程占據的百分比), 0.1%sy(內核占用), 0.0%ni(用于nice調整), 99.8%id(空閑), 0.0%wa(等待IO), 0.0%hi(硬件中斷), 0.1%si(軟件終中斷), 0.0%st(被虛擬化偷走的) Mem: 1004348k total, 192132k used, 812216k free, 21320k buffers Swap: 204796k total, 0k used, 204796k free, 85156k cached
uptime命令:顯示系統時間、運行時長及平均負載; 過去一分鐘、五分鐘和十五分鐘的平均負載; 等待運行的進程隊列的長度;
htop命令;
選項: -d num:指定延遲時間間隔; -u UserName:僅顯示指定用戶的進程 -s COLUME: 以指定字段進行排序;子命令: l:顯示選定的進程打開的文件列表 s:跟蹤選定的進程系統調用; t:以層級關系顯示各進程狀態; a:將選定的進程綁定至某指定的CPU核心;
vmstat查看虛擬內存的使用情況;
vmstat 2:以2秒為間隔,不斷刷新 vmstat 2 3 : 以2秒為間隔,刷新三次 procs: r:等待運行的進程的個數;CPU上等待運行的任務的隊列長度 b:處于不可中斷睡眠態的進程個數;被阻塞的任務隊列的長度; swpd:交換內存使用總量; buffer:用于buffer的內存總量; cache: 用于cache的內存總量; swap si:數據進入swap中的數據速率(kb/s) so:數據離開swap的速率(kb/s) io bi:從塊設備讀入數據到系統的速度(kb/s) bo:保存數據至塊設備的速率(kb/s) system in:interrupts,中斷速率; cs:context switch,上下文切換的速率;
dstat命令:
常用選項: -c 顯示CPU相關信息; -d 顯示磁盤的相關信息 -D sda,sdb... -g:顯示page的相關的速率數據; -m:Memory的相關統計數據; -n:Lnterface的相關統計數據; -p:顯示process的相關統計數據; -r:顯示io請求的相關統計數據; -s:顯示swapped的相關統計數據;
glances命令
內部選項; 常用選項: -b:以Byte為單位顯示網上數據速率; -d:關閉磁盤I/O模塊 -m:關閉mount模塊; -n:關閉network模塊; -t #:刷新時間間隔; -1 :每個CPU的相關數據單獨顯示; -o{HTML|CSV}:輸出格式; -f /PATH/TO/SOMEDIR :設定輸出文件的位置C/S模式下運行glances命令: 服務模式: glances -s -B IPADDR IPADDR:本機的某地址,用于監聽; 客戶端模式: glances -c IPADDR ipADDR :是遠程服務器地址;
kill命令:
常用命令: 1)SIGHUP:無須關閉進程而讓其重讀配置文件; 2)SIGINT:終止正在進行的進程,相當于ctrl+c 9)SIGKILL:殺死運行中的進程 15)SIGTERM:終止運行中的進程; killall 可以把一個進程的全部進程關掉;
Liunx系統作業控制:
job:
前臺作業(foregroud):通過終端啟動,且啟動后會一直占據終端 后臺作業(backgroud):可以通過終端啟動,但啟動后即轉入后臺運行(釋放終端)
如何讓作業運行于后臺?
(1)運行中的作業
curl+z 注意:送往后臺后,作業轉為停止態
(2)尚未啟動的作業
#COMMAND & 注意:此類作業雖然被送往后臺,但其依然與終端相關(意思是如果終端終止,那么從終端開啟的后臺也會終止);如果希望把送往后臺的作業剝離與終端的關系:#nohup COMMEND &(轉為與終端無關的模式)
作業前邊有加減號的顯示,“+”的意思就是可以用fg命令后便不用接參數直接調回來?!啊?不如“+”優先級高
查看所有作業:
#jobs
可實現作業控制的常用命令:
#fg[[%]JOB_number]:把指定的作業調回前臺%可以省略
#bg[[%]JOB_number]:讓送往后臺的作業在后臺繼續運行 %可以省略
#kill[%JOB_number]:終止指定的作業%不能省略,因為省略了就成了進程ID號了不是作業號。
調整進程優先級: 可通過nice值調整的優先級范圍:100-139 進程啟動時,其nice值默認為0,其優先級是120;
nice命令; 以指定的nice值啟動并運行命令 nice[option][command]參數… -n 指定nice值 注意:僅管理員可調低nice值
renice命令(調整已經啟動的進程):
renlice -n -3 進程ID
查詢進程優先級 ps axo pid,comm,ni,priority | grep htop
本地電子郵件服務:
smtp:slmple mail transmission protocol 只能接收郵件 pop3:post Office procotol 用來接收郵件 imap4:Internet mail access procotol 用來接收郵件 mail命令: mailx [-s 'SUBJECT'] username [@hostname](hostname如果是本地則不用寫) 郵件正文的生成: (1)交互式輸入:單獨成行表示正文結束;curl+d提交即可; (2)通過輸入重定向 (3)通過管道;
at命令
at [option]...TIME TIME: HH:MM:SS [YYY-mm-dd] noon(中午十二點),midnight(半夜十二點),teatime(下午茶時間下午四點) 常用選項: -l:查看任務隊列 -f /PATH/FROM/SOMEFEIL:從指定文件中讀取任務,不用交互式輸入了 -d:刪除(加上任務號) -c:查看指定作業的具體內容 -q QUEUE:指明隊列;
注意:作業執行結果是以郵件發送給提交作業用戶;
向crond提交作業的方式不同于at,他需要使用專用的配置文件,此文件有固定格式,不建議直接使用文件編輯器來編輯此文件;要使用crontab命令;
cron任務分為兩類: 系統cron任務:主要用于實現系統自身的維護;用戶cron任務: 命令:crontab命令
系統cron的配置格式: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
(1)每一行定義一個周期性任務: * * * * * :定義周期性時間 user-name:運行任務的用戶身份 command to be executed:任務 (2)此處的環境變量不同于用戶登錄后獲得的環境,因此,建議命令使用絕對路徑,或者自定義變量; (3)執行結果郵件發送給MAILTO指定的用戶
用戶cron的配置格式: /var/spool/cron/USERNAME
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
(1)每行定義一個cron任務,共6個子彈;
(2)此處的環境變量不同于用戶登錄后的環境,因此,建議命令使用絕對路徑,或者自定義PATH環境變量;
(3)郵件發送給當前用戶;
時間表示法:
(1)特定值; 給定時間點有效取值范圍內的值; 注意:day of week和day of mouth不同時使用 (2)給定時間點上有效取值范圍的所有值; *代表的含義:分鐘、小時、天、月、星期幾 示例: (1)3 * * * *:每小時執行一次;每小時的第三分鐘; (2)3 4 * * 5:每周執行一次;每周5的4點3分; (3)5 6 7 * *:每月執行一次;每月的7號6點5分; (4)7 8 9 10 *:每年執行一次;每年的10月9號8點7分; (5)9 8 * *3,7:每周三和周日8點9分 (6)0 8,20 * * 3,7:沒周三和周日的8點和20點 (7)0 9-18 * * 1-5:周一到周五的9-18點 (8)*/5 * * * *:每5分鐘執行一次任務(指定時間點不能被步長整除時,其意義將不復存在最小時間單位為“分鐘”,想完成“秒”級人物,的需要利用腳本實現); crontab命令: crontab -e:編輯任務; crontab -l:列出所有任務 crontab -r:刪除所有任務;即刪除 /var/spool/cron/USERNAME文件 crontab -u username:可以給別的用戶定義定時任務 注意:運行結果以郵件通知給用戶;如果拒絕接收郵件: (1)COMMAND > /dev/null 注意:定義COMMEND時,如果命令需要用到%,需要對其轉義;但放置于單引號中的%不用轉義; 思考:某任務在指定的時間因關機未能執行,下次開機會不會執行? 不會 如果期望時間因故未能按時執行,下次開機后無論是否到了響應時間點都要執行一次,可用anacron實現;
traceroute 目標IP :可以顯示從源主機到目標主機所經過的網關;
原創文章,作者:forest,如若轉載,請注明出處:http://www.www58058.com/43726