6

我目前有以下 bash 脚本:

for a in `seq 16 75`; 
do scp doneill@server:/mnt/device/folder/numbered_file$a.txt ./; 
done;

虽然这确实有效,但速度很慢。每个文件,对服务器的请求大约需要 4-7 秒,然后发送文件需要另外 3 秒左右。

有没有办法做到这一点,只涉及发送到服务器的 1 个命令(以最大限度地减少我的 VPN 发送接收每个单独命令所花费的时间)?通常,我会做类似的事情,scp doneill@server:/mnt/device/folder/numbered_file*但是文件夹中有成千上万个我不想复制的文件。我只需要得到那几个(由序列定义)。

4

3 回答 3

5

在 bash 中:

scp doneill@server:/mnt/device/folder/numbered_file{16..75}.txt ./
于 2011-01-18T20:37:49.990 回答
3

rsync 应该可以解决问题:http: //www.manpagez.com/man/1/rsync/

您可能需要稍微调整一下参数,但如果做得对,这可能是通过 ssh 传输文件的最快方式。

于 2011-01-18T20:41:39.750 回答
2

这适用于 bash 吗?

scp doneill@server:/mnt/device/folder/numbered_file{16..75}.txt ./
于 2011-01-18T20:39:13.363 回答