Sysdig 命令使用示例

2021-10-01 08:47:11 字數 4823 閱讀 5629

sysdig所有命令都是用lua 實現的。可以在sysdig 的預設安裝目錄/usr/share/sysdig/chisels中找到支援的所有lua命令指令碼。下面按型別列出目前支援的所有的命令。也可以編寫自己的命令,參考

網路

檢視占用網路頻寬最多的程序

sysdig -c topprocs_net

顯示主機192.168.0.1的網路傳輸資料 as binary:

sysdig -s2000 -x -c echo_fds fd.cip=192.168.0.1 as ascii: sysdig -s2000 -a -c echo_fds fd.cip=192.168.0.1

檢視連線最多的伺服器端口 :

sysdig -c fdcount_by fd.sport "evt.type=accept" in terms of total bytes: sysdig -c fdbytes_by fd.sport

檢視客戶端連線最多的ip

sysdig -c fdcount_by fd.cip "evt.type=accept" in terms of total bytes sysdig -c fdbytes_by fd.cip

列出所有不是訪問apache服務的訪問連線

sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"

容器檢視機器上執行的容器列表及其資源使用情況

sudo csysdig -vcontainers

檢視容器上下文的程序列表

sudo csysdig -pc

檢視執行在wordpress1容器裡cpu的使用率

sudo sysdig -pc -c topprocs_cpu container.name=wordpress1

檢視執行在wordpress1容器裡網路頻寬的使用率

sudo sysdig -pc -c topprocs_net container.name=wordpress1

檢視在wordpress1容器裡使用網路頻寬最多的程序

sudo sysdig -pc -c topprocs_net container.name=wordpress1

檢視在wordpress1 容器裡占用 i/o 位元組最多的檔案

sudo sysdig -pc -c topfiles_bytes container.name=wordpress1

檢視在wordpress1 容器裡網路連線的排名情況

sudo sysdig -pc -c topconns container.name=wordpress1

顯示wordpress1容器裡所有命令執行的情況

sudo sysdig -pc -c spy_users container.name=wordpress1

應用檢視機器所有的http請求

sudo sysdig -s 2000 -a -c echo_fds fd.port=80 and evt.buffer contains get

檢視機器所有的sql select查詢

sudo sysdig -s 2000 -a -c echo_fds evt.buffer contains select

實時檢視 apache呼叫外部mysql的查詢:

sysdig -s 2000 -a -c echo_fds fd.sip=192.168.30.5 and proc.name=apache2 and evt.buffer contains select

硬碟 i/o

檢視使用硬碟頻寬最多的程序

sysdig -c topprocs_file

列出使用大量檔案描述符的程序

sysdig -c fdcount_by proc.name "fd.type=file"

按讀+寫位元組檢視頂級檔案

sysdig -c topfiles_bytes

列印apache讀取或寫入的頂級檔案 :

sysdig -c topfiles_bytes proc.name=httpd

基本的opensnoop:當snoop檔案在被開啟時 :

sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open

按r+w磁碟排序檢視頂級目錄:

sysdig -c fdbytes_by fd.directory "fd.type=file"

按r+w磁碟排序檢視/tmp目錄中檔案

sysdig -c fdbytes_by fd.filename "fd.directory=/tmp/"

觀察名為「passwd」的檔案上的i/o操作:

sysdig -a -c echo_fds "fd.filename=passwd"

按fd型別顯示i/o活動:

sysdig -c fdbytes_by fd.type

程序和cpu使用率

檢視cpu使用率最高的程序:

sysdig -c topprocs_cpu

檢視cpu 0的程序:

sysdig -c topprocs_cpu evt.cpu=0

觀察程序的標準輸出:

sysdig -s4096 -a -c stdout proc.name=cat

效能和錯誤

檢視花費時間最多的檔案

sysdig -c topfiles_time

檢視apache花費大部分時間的檔案

sysdig -c topfiles_time proc.name=httpd

檢視i/o錯誤最多的級程序:

sysdig -c topprocs_errors

按i/o錯誤檢視頂級檔案:

sysdig -c topfiles_errors

檢視所有失敗的磁碟i/o呼叫:

sysdig fd.type=file and evt.failed=true

檢視httpd開啟失敗的檔案:

sysdig "proc.name=httpd and evt.type=open and evt.failed=true"

檢視花費了大部分時間的系統呼叫:

sysdig -c topscalls_time

檢視返回錯誤的系統呼叫:

sysdig -c topscalls "evt.failed=true"

羅列出開啟失敗的檔案:

sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open and evt.failed=true

列印延遲大於1毫秒的檔案i/o呼叫:

sysdig -c fileslower 1

安全顯示使用者「根」訪問的目錄:

sysdig -p"%evt.arg.path" "evt.type=chdir and user.name=root"

觀察ssh活動:

sysdig -a -c echo_fds fd.name=/dev/ptmx and proc.name=sshd

顯示/etc中開啟的每個檔案:

sysdig evt.type=open and fd.name contains /etc

顯示已啟動「tar」命令的所有登入shell的id:

sysdig -r file.scap -c list_login_shells tar

顯示登入shell使用給定id執行的所有命令:

sysdig -r trace.scap.gz -c spy_users proc.loginshellid=5459

異常監控

topcontainers_error 出錯最多的容器

topfiles_errors 出錯最多的檔案

topprocs_errors 出錯做多的程序

系統狀態監控

lscontainers 羅列正在執行的容器

lsof  列出(並可選地篩選)開啟的檔案描述符.

netstat 列出(並可選地篩選)網路連線.

ps 列出(並可選地篩選)計算機處理的。

Linux find 命令使用示例

按名字查詢 1.查詢home目錄及其子目錄的 txt 檔案 find name txt print 2.查詢當前目錄及其子目錄的 txt 檔案 find name txt print 3.查詢以大寫字母開頭的檔案 find name a z print 按檔案許可權相位查詢 1.查詢許可權為755的...

jar命令使用示例

cd f projects mytestproj war web inf classes com liany common jar cvf webreader1.0.jar class path lib bootstrapconnector.jar lib juh 2.3.0.jar lib jur...

lsof命令使用示例

lsof 命令是什麼?可以列出被程序所開啟的檔案的資訊。被開啟的檔案可以是 1.普通的檔案 2.目錄 3.網路檔案系統的檔案 4.字元裝置檔案 5.函式 共享庫 6.管道,命名管道 7.符號鏈結 8.底層的 socket 字流,網路 socket unix 網域名稱socket 怎樣使用 lsof ...