我使用的是 Mac 10.9.5 和 bash shell。在我们的环境中,我们必须通过代理(一台 CentOS 机器)才能正确地通过 SSH 连接到目标机器(另一台 CentOS 机器)。我想要做的是创建一个快捷方式,这样我就可以快速将文件 scp 到目标服务器,例如
scp localfile.txt davea@server:/home/davea
但是现在,我必须执行多个命令来传输文件……
scp localfile.txt davea@proxy:/home/davea
ssh davea@proxy
scp localfile.txt davea@server:/home/davea
可以将以上内容浓缩为一行吗?
答案1
你体内的一个功能怎么样.bash_profile
scps () {
if [ -f $1 ] ; then
scp $1 davea@proxy:/home/davea && ssh davea@proxy && scp $1 davea@server:/home/davea
else
echo "'$1' is not a valid file!"
fi
}
然后您可以使用scps filename
复制filename
到davea@server:/home/davea
。
答案2
考虑使用同步自动将文件从代理复制到目标:
rsync local-file user@remote-host:remote-file