2016-09-23 4 views
0

Ich rekursiv ein Unterverzeichnis nach Dateien durchsuchen, die bestimmten Kriterien entsprechen. Ich gebe dann die Dateinamen/Pfade in eine flache Datei aus. Ich möchte in der Lage sein, die Dateien, auf die in dieser Datei verwiesen wird, in Parallelmodus zu S3 zu kopieren, um die Verarbeitungszeit zu beschleunigen. Beispiel:AWS S3 Parallele Kopie von referenzierten Dateien

myfiles.txt: 
/data/srv/prod1/file1.tar.gz 
/data/srv/prod4/file12.tar.gz 
/data/srv/prod2/file255.tar.gz 

Ich kann Schleife durch die Datei und führen Sie die S3 Kopieren Sie ein-at-a-time aber die Dateien sind sehr groß und es dauert eine wirklich lange Zeit.

Wie kann ich die referenzierten Dateien parallel zu S3 kopieren?

Antwort

0

Wenn Sie die Dateinamen durchlaufen, können Sie jede Übertragung in einem eigenen Prozess (oder Thread) starten. Indem Sie die Anzahl der laufenden Prozesse oder Threads steuern, können Sie mehrere Dateien gleichzeitig übertragen. Die Übertragung von zu vielen Dateien auf einmal könnte jedoch die Übertragungsgeschwindigkeit beeinträchtigen.

0

Verwenden GNU Parallel:

cat myfiles.txt |parallel -j0 s3cmd cp {} s3://bucket/folder/{/} 

-j0 einstellen, bis Sie den max Durchsatz finden.