Bash

我可以將後續腳本執行傳遞給已建立的 ssh 連接 shell

  • June 2, 2021

我想在成功建立 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
me@foo.dev.company.net's password: ***********
# Output of Tail

我想知道是否有可能建立 ssh 連接並將後續 shell 傳遞給它應該在啟動後立即執行的新腳本。

編輯:

我的目標是在我的 shell 中對遠端伺服器上的日誌文件進行跟踪。腳本應該簡化了通過簡單鍵入來./rtail.sh foo跟踪這些日誌文件的方式。執行該命令時,我希望 shell 顯示特定的尾部輸出,具體取決於我通過 shell 參數選擇的遠端伺服器。我只想要一個快捷方式:

  • ssh 到遠端伺服器
  • tail -f 路徑/到/logfile.log

如果我理解正確,您正在尋找這樣的東西:


#!/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"

引用自:https://unix.stackexchange.com/questions/652445