[英]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.