我以递归方式在子目录中搜索符合特定条件的文件。然后我将文件名/路径输出到平面文件。我希望能够以并行模式将该文件中引用的文件复制到S3,以加快处理时间。例如:
myfiles.txt:
/data/srv/prod1/file1.tar.gz
/data/srv/prod4/file12.tar.gz
/data/srv/prod2/file255.tar.gz
我可以循环访问文件并一次执行S3 Copy,但文件非常大,需要很长时间。
如何将引用的文件并行复制到S3?
答案 0 :(得分:0)
循环浏览文件名时,可以在自己的进程(或线程)中开始每次传输。通过控制正在运行的进程或线程数,您可以一次传输多个文件。但是,一次传输太多文件实际上可能对传输速度不利。
答案 1 :(得分:0)
使用GNU Parallel:
cat myfiles.txt |parallel -j0 s3cmd cp {} s3://bucket/folder/{/}
调整-j0
,直至找到最大吞吐量。