1
我想通過expect腳本獲得前5行的頂級命令。我從一個shell腳本和其他一些東西中調用這個expect腳本。shell腳本中的頂級命令
top | head -5
給我下面輸出即沒有CPU stats-
頂部 - 9時10分58秒增長46天,17點03分,12個用戶,平均負載:0.01,0.02,0.00 任務:138總共,1點運行,137睡眠,0停止,0殭屍
號負責:16432400k總,8408096k使用8024304k免費,609200k 緩衝器互換:6290736k總,使用0K,6290736k免費, 6754356k緩存
如果我只在該遠程服務器上運行top
命令,我可以看到CPU狀態行更新前有2-3秒的延遲,有人可以幫助我獲得更新的cpu狀態的全部5行嗎?下面是我期待的腳本 -
#!/usr/bin/expect -f
set user1 abc
set pass1 pass
set timeout 8
match_max 1000
spawn ssh -C -o stricthostkeychecking=no [email protected]<ip>
expect "*?assword:*"
send "$pass3\r"
expect "?xterm*"
send "\r"
send "top | head -5\r"
expect eof
是的,這是正確的。您可以根據您的應用程序需要調整num_iterations的值。 – Tuxdude 2013-03-04 02:50:48
您的意思是在期望腳本中,我需要添加set num_iterations 3,併發送「top -b -n $ num_iterations | head -5」?如果是這樣,我得到相同的輸出沒有CPU統計數據,只是一個教導,我們可以怎麼指定等待x秒前輸出管道到頭部命令? – 2013-03-04 02:52:50
您是否只需要輸出前5個過程?我發現用'head -12'替換'head -5'列出了前5個進程。如果您想跳過標題並獲取前5個進程的信息,則可以執行'top -b -n 3 | sed -n'8,12p''。 sed命令在輸出中選擇第8-12行。 – Tuxdude 2013-03-04 05:56:37