我可以将后续脚本执行传递给已建立的 ssh 连接 shell

我可以将后续脚本执行传递给已建立的 ssh 连接 shell

我想在成功建立 ssh 连接后执行脚本部分。我想让我更容易地用我正在尝试编写的脚本来跟踪日志文件。

这是正在进行的脚本工作:

echo "[Log Tunnel]" 
 
if [ "$1" == "foo" ] 
        then 
                echo "connecting to foo.dev.company.net" 
                ssh foo.dev.company.net        
                tail -f var/logs/staff/backend/backend.log # what's the way to do this
fi 
 
if [ "$1" == "bar" ] 
        then 
                echo "connecting to bar.dev.company.net" 
                ssh bar.dev.company.net         
fi 

当我运行脚本时,我期望出现以下结果:

[Log Tunnel]
connecting to foo.dev.company.net
[email protected]'s password: ***********
# Output of Tail

我想知道是否有可能建立 ssh 连接并向后续 shell 传递一个新脚本,它应该在启动后立即执行。

编辑:

我的目标是在我的 shell 中对远程服务器上的日志文件进行跟踪。该脚本应该可以简化我简单键入的跟踪这些日志文件的方法./rtail.sh foo。执行该命令时,我希望 shell 根据我通过 shell 参数选择的远程服务器显示特定的尾部输出。我只想要一个快捷方式:

  • ssh 到远程服务器
  • tail -f 路径/to/logfile.log

答案1

如果我理解正确的话,您正在寻找这样的东西:


#!/bin/sh

echo "[Log Tunnel]" 
 
if [ "$1" = "foo" ] 
then 
  server="foo.dev.company.net"
  file="var/logs/staff/backend/backend.log"
elif [ "$1" = "bar" ]
then
  server="bar.dev.company.net"
  file="some/other/file"
fi

echo "connecting to $server" 
ssh "$server" tail -f "$file"

相关内容