【问题标题】:How can use one ssh for two commands to save 2 different files如何为两个命令使用一个 ssh 来保存 2 个不同的文件
【发布时间】:2014-10-08 07:30:31
【问题描述】:

如何为两个命令使用一个 ssh 来保存 2 个不同的文件。就像一个命令是ps -ef | grep Consumer | cut -f6 -d' ' 并将此输出保存在file.log 中,第二个命令是ps -ef | grep Test | cut -f7 -d' ' 并将输出保存在test.log 中

【问题讨论】:

  • 输出文件应该在本地系统上,还是远程(ssh'ed)?
  • 本地系统输出
  • 我认为ps -ef 需要在远程系统上运行。
  • 是的。 ps -ef 需要在远程系统上运行,但输出应该保存在本地系统上。

标签: linux bash shell unix ssh


【解决方案1】:

只有ps -ef 需要在远程系统上运行。解析输出可以在本地系统中进行。

& 使用awk 更容易。只需要单个 ssh 会话和ps -ef 命令快照:

ssh user@host ps -ef | awk -F' ' '/Consumer/{print $6 > "file.log"}; /Test/{print $7 > "test.log"}'
  1. grep+cut 可以发生在 awk - '/pattern/{print $n}'
  2. 使用awk 也可以轻松实现文件重定向。检查上述答案中的语法。

【讨论】:

    【解决方案2】:

    我宁愿只在远程系统上进行解析,因为 ps -ef 会提供很大的输出,如果我们不在那里解析和剪切它,那么整个输出就会通过网络从远程系统传输到本地系统。如果输出大小增加,可能需要更多时间。而且我们甚至不需要本地系统上的全部输出,所以最好只在远程系统上解析它。

    ssh 用户@host ps -ef | grep 消费者 |剪切 -f6 -d' ' > file.log; ps -ef | grep 测试 | cut -f7 -d' ' > test.log

    【讨论】:

      猜你喜欢
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-12
      • 2017-12-13
      • 2022-12-03
      相关资源
      最近更新 更多