簡體   English   中英

從sh文件發送命令並通過ssh保持登錄狀態

[英]Send commands from sh file and stay logged in over ssh

我想發送一個簡單的.sh文件中的一些命令(功能),並在ssh到遠程計算機時保持登錄狀態。

我已經嘗試了很多方法,但是到目前為止都還沒有成功。 這只是一個:

msh(){
    SERVER=$1
    LOCAL=10.20.1.1
    SSHF=`cat /tmp/sshf.sh`
    ssh $SERVER -R 47471:$LOCAL:22 "$SSHF; bash --login"
}

我也嘗試過使用管道和流復制文件,但沒有任何效果。

您需要在$SERVER處保留一個終端,使用-t開關即可。 如果我將您的功能更改為:

msh(){
    SERVER=$1
    LOCAL=10.20.1.1
    SSHF=`cat /tmp/sshf.sh`
    ssh -t $SERVER -R 47471:$LOCAL:22 "$SSHF; bash --login"
}

它似乎可以做您想要的。

首先使用scp復制文件,如下所示: scp /tmp/sshf.sh $SERVER:~

這會將腳本sshf.sh放在$SERVER上的主目錄中,然后您可以ssh進入計算機並運行它ssh $SERVER cat ~/sshf.sh

作為一個名為copy_run_stay.sh的腳本, sshf.sh包含echo hello sshf.sh如下所示:

#!/bin/bash

# get server name as argument to script
SERVER=$1
script='sshf.sh' 
# copy script to server
scp $script $SERVER:~
# run script on server
ssh $SERVER cat ~/sshf.sh
# stay on server
ssh $SERVER

並會產生:

# run the script on laptop
laptop $ ./copy_run_stay.sh
# sshf.sh gets copied to server and ran
server $ hello 
# we are still on the server
server $ 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM