linux服务器之间如何通过sftp传输文件后台命令
时间: 2025-01-08 08:27:29 浏览: 5
### 使用 `nohup` 和 `&` 实现 SFTP 文件传输后台运行
为了实现在 Linux 服务器之间的文件通过 SFTP 转移并让该过程在后台执行,可以利用 `nohup` 命令配合 `&` 符号来启动进程[^1]。
当使用命令行工具进行长时间操作时,如果不想因为终端关闭而中断任务,则可以在命令前加上 `nohup` 并且在命令结尾处附加 `&` 来将其放到后台执行。对于 SFTP 的情况来说,具体做法如下:
```bash
nohup sftp -b batchfile user@remotehost &
```
这里 `-b` 参数指定了批处理模式下的指令文件名,在这个文件里包含了要上传或下载的目标路径以及相应的动作(get 或 put)。这种方式非常适合批量处理多个文件的场景,并允许这些操作继续在后台完成而不受前台活动的影响。
另外一种方法是直接构建完整的单条命令字符串并通过 nohup 执行:
```bash
nohup sftp user@remotehost <<EOF &
put local_file remote_directory/
exit
EOF
```
这段脚本会将本地指定位置上的文件发送到远程主机相应目录下,之后退出连接;整个过程中产生的任何输出都将被重定向至名为 "nohup.out" 的默认日志文件中除非另有说明。
阅读全文