问题是:我想从远程机器复制文件。
我正在寻找一种方法来编写一个 shell 脚本,该脚本将连接到远程机器,获取存储文件的位置,一旦我获得了与远程服务器断开连接的位置,并从本地机器中使用 scp 获得的位置到复制文件。
具体来说,我想知道如何通过脚本连接到远程机器,在该机器上执行任务。断开连接,并在本地继续执行。
Kha*_*led 20
您可以按以下格式编写脚本:
command1
command2
...
ssh user@machine command3
...
command4
command5
Run Code Online (Sandbox Code Playgroud)
您需要设置 SSH 密钥才能在command3
不提示您输入密码的情况下执行。
小智 15
解决方案1:
remote_output="$(ssh user@host "remote command")"
scp "user@$host:$remote_output" /local/path
Run Code Online (Sandbox Code Playgroud)
这通过连接到远程机器、运行一些命令并将输出复制到本地机器上的变量来实现。比如说,远程回显文件路径,在本地捕获它。
解决方案2:
ssh user@host "determine_path; cat filename" >local_filename
Run Code Online (Sandbox Code Playgroud)
这是通过直接从远程查找和输出文件,并将其重定向到本地文件来实现的。这会跳过 scp。这要求“cat”之前的步骤没有输出(您可以使用 &>/dev/null 解决)。
归档时间: |
|
查看次数: |
25812 次 |
最近记录: |