我想寫一個shell腳本來做到以下四件事情:shell腳本SSH遠程計算機並打印top命令的輸出
- SSH遠程機器(說hosti)
- 打印機名稱到一個文件(top_out)
- 打印的「頂部」命令的輸出到同一文件的前幾行按照在步驟2
- 重複1-3的其他機器
我嘗試這樣做:
#! /bin/bash
for i in 1 2 3 4 5 6 7 8
do
echo "host$i" >> ~/mysh/top_out
ssh host$i "top -n1 -b | head -n 15>> ~/mysh/top_out"
echo "done"
done
,我得到了保存一些機器上輸出(說像host5-8)輸出文件,但它是空白的,爭取早日machinessay像host1-4。如果我嘗試不使用「echo」主機$ i「>>〜/ mysh/top_out」這一行,我可以得到所有host1-8的最高輸出。
最好的,包括在你的腳本的頂部爲「零」出該文件每次運行(至少在測試),也就是'回聲> 〜/ mysh/top_out'。祝你好運。 – shellter
你需要改變這個:'ssh host $ i「top -n1 -b | head -n 15 >>〜/ mysh/top_out」'to this:'ssh host $ i「top -n1 -b | head - 「〜〜/ mysh/top_out」,即'〜〜/ mysh/top_out'需要在引號之外。 – bluesmoon
文件〜/ mysh/top_out需要駐留在host1-htos8中,還是應該駐留在執行ssh的本地主機中? – alvits