Bash
如何使用 systemd-cgtop 編寫腳本?
systemd-cgtop的手冊頁說,如果沒有附加的 tty,它將執行一次迭代然後列印出來,說這在腳本中很有用。
但是,當我嘗試從腳本執行此操作時,它不會像宣傳的那樣工作:
#!/bin/bash line=$(systemd-cgtop|grep ezdose) echo $line
像這樣執行腳本:
$ bash test.sh (hangs with no output)
你怎麼做這個?
systemd-cgtop -n1 將進行 1 次迭代
要查找您是否連接到 tty,請在腳本中添加一行:tty
#!/bin/sh # How to check what tty you are on. echo -ne "Connected TTY: "`tty` line=$(systemd-cgtop -n1|grep ezdose) echo $line
新聞摘錄:
與 201 的變化:
systemd-cgtop 也已更新為“可管道”,以便使用進一步的 shell 工具進行處理。
所以,你可以
systemd-cgtop | grep ...
從v201
.與 188 的變化:
cgtop 獲得了一個新的 -n 開關(類似於 top),用於配置要執行的最大迭代次數。它還獲得了-b,以批處理模式執行(不接受輸入)。
你可以執行
systemd-cgtop -n1 -b | grep ...
。但systemd-cgtop
列印Path Tasks %CPU Memory Input/s Output/s
為第一行(直到v201
)。還:
與 221 的變化:
systemd-cgtop 工具學習了一個新的 –raw 開關來生成“原始”(機器可解析)輸出。
使用該
--raw
選項,您可以獲得以字節為單位的大小:即92213248
,而不是87.9M