使用 disowned bash 脚本在服务器之间启动文件传输

使用 disowned bash 脚本在服务器之间启动文件传输

要从远程服务器传输文件,我需要先使用密码登录,然后输入命令,将文件传输到本地文件夹,并且我的终端应该打开,直到传输完成。

有没有办法将公钥传递给 scp 并通过 bash 脚本开始传输?然后放弃 bash 脚本并关闭终端?

还有什么其他选择,可以在后台实现它?

答案1

我不确定是否清楚地了解您在寻找什么。您是否想在本地计算机上运行 Bash 脚本,该脚本除了调用scp(使用ssh内部处理密钥认证)外什么都不做?还是您想在远程服务器上运行脚本?或者您可能想使用特定的公钥?

回答

要在后台运行命令或脚本,同时防止其进程在从你的终端接收到 SIGHUP 信号时停止(即当你关闭它时),你可以使用nohup <command or script> &


假设您的脚本名为script.sh,您可以使用 运行它nohup script.sh &。该脚本可以运行以下命令(如果您想强制使用特定的公钥):

#!/bin/sh
scp -B -i /home/user/.ssh/id_rsa_key.pub /path/to/your/files [email protected]:.

如果您不想使用脚本文件或简化命令,那么您可以随时使用您的~/.ssh/config文件来实现这一点:

Host RemoteServer
  Hostname remote.host
  User username
  IdentityFile ~/.ssh/id_rsa_key.pub # If you need to force a particular key
  Port 22 # Not necessary either, port 22 is default

因此,运行命令可以像nohup scp /path/to/your/files RemoteServer:. &

请随时告诉我有关您的配置和/或您确切地想要实现,我将编辑我的答案以反映这些变化。

相关内容