用于 ssh、查看日志文件和运行命令的 shell 脚本

用于 ssh、查看日志文件和运行命令的 shell 脚本

我想要一个 shell 脚本,它通过 ssh 连接到服务器,开始查看日志,然后触摸文件。按此顺序执行这些操作很重要,因为我想在日志中看到第二个命令的效果。我该如何编写这个脚本?如果我尝试类似以下内容:

ssh myserver tail -f /some/path/logfile &
ssh myserver touch /some/path/another-file
fg  # hoping to see the output of first command

我收到关于“此 shell 中没有作业控制”的错误。

答案1

@aviv-lo 提供的答案应该有效。

但有些事情可能会改变你目前的方法

  • 添加set -m作业控制
  • 可能还会看到ssh客户端会话存在问题,因为它尝试使用 stdin,因此失败。

添加-n到后台tail命令。为了更好的措施,也许还可以添加-T

#!/usr/bin/env bash
set -m
ssh -Tn myserver tail -f /var/log/messages &
ssh mysrever logger blah blah 
fg

答案2

你可以做的是,像在服务器上一样在本地创建 shell 脚本,然后将其传输到 ssh 客户端

cat shell_script.sh | ssh syntax_to_connect_to_the_server

相关内容