我需要将多个文件发送到多个位置,但找不到正确的方法。
例如,我需要将file1 发送到location1,将file2 发送到location2。这就是我正在做的事情:
scp file1 file2 root@192.168.1.114:/location1 /location2
但这不起作用。有什么建议吗?
我需要将多个文件发送到多个位置,但找不到正确的方法。
例如,我需要将file1 发送到location1,将file2 发送到location2。这就是我正在做的事情:
scp file1 file2 root@192.168.1.114:/location1 /location2
但这不起作用。有什么建议吗?
无法使用单个scp
命令发送到多个远程位置。它可以容纳多个源文件,但只能容纳一个目标。仅使用scp
命令本身,它必须运行两次。
scp file1 file2 user@192.168.1.114:/location1
scp file1 file2 user@192.168.1.114:/location2
可以通过运行 for 循环将其变成“单线”。以 bash 为例:
for REMOTE in "user@192.168.1.114:/location1" "user@192.168.1.114:/location2"; do scp file1 file2 $REMOTE; done
scp
仍然运行多次,但循环负责迭代。也就是说,我发现运行一次命令更容易,点击向上箭头(在大多数环境中恢复原始命令),然后更改远程位置并重新发送。
您可以将您的 scp 命令放在 .sh 文件中,并在一行中使用用户名和密码执行 scp 命令
vim ~/fileForSCP.sh
#!/bin/sh
sshpass -p {password} scp file1 root@192.168.1.114:/location1
sshpass -p {password} scp file2 root@192.168.1.114:/location2
sshpass -p {password} scp file3 root@192.168.1.114:/location3
...
sshpass -p {password} scp file{n} root@192.168.1.114:/location{n}
接着:
chmod 777 ~/fileForSCP.sh
~/fileForSCP.sh
你不能用一个scp
命令来做到这一点。只需使用scp
两次:
scp file1 root@192.168.1.114:/location1
scp file2 root@192.168.1.114:/location2
例如,您可以使用符号链接构建所需的远程树结构
ln -s file1 目标/位置1/文件1 ...等
在此之后,您可以使用取消引用副本来推送这些文件
rsync -rL 目标 -e ssh user@host:/tmp
嗨,由于SCP仅针对单个目的地,因此有一个关于此查询的 Hack,但警告您这可能有点幼稚,但可以完成您的工作。在两个 SCP 呼叫之间使用&&
接线员
我这样使用它:
scp fileTosend userName1@IPAddress_1:path/to/folder && scp fileToSend userName2@IPAddress_2:path/to/folder
这将同时将数据发送到两个目的地。