我想写一个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