2016-07-15 15 views
0

Ich verwende s3cmd, um ~ 11000 Dateien aus einem öffentlich zugänglichen s3-Bucket (s3://cgl-rnaseq-recompute-fixed) zu meinem EC2-Container zu bekommen. Ich verwende den folgenden Befehl ein:Run s3cmd bekomme im Hintergrund

for i in $(cat tcga-manifest); do s3cmd get --requester-pays $i; done

wo tcga-manifest eine Datei mit einer Liste von Dateien zu erhalten:

head -n3 tcga-manifest 

s3://cgl-rnaseq-recompute-fixed/tcga/00065a62-5e18-4223-a884-12fca053a109.tar.gz 
s3://cgl-rnaseq-recompute-fixed/tcga/0009f27d-a053-49b0-a030-ba9c1469224f.tar.gz 
s3://cgl-rnaseq-recompute-fixed/tcga/000f476b-7d55-4fd1-8f72-622ab00e009b.tar.gz 
s3://cgl-rnaseq-recompute-fixed/tcga/001313a7-fbd7-4a9a-a961-50c7433338e7.tar.gz 

Allerdings mag ich den Befehl get im Hintergrund laufen zu lassen, so dass Wenn ich mich aus dem EC2-Container abmelde, läuft es weiter. Da ich eine große Anzahl von Dateien herunterlade, bricht die SSH-Verbindung ab. Ich habe versucht, & mit denen haben nicht funktioniert:

for i in $(cat tcga-manifest); do s3cmd get --requester-pays $i; done &

Wie kann ich ausführen, um den s3cmd Befehl erhält im Hintergrund und Abmeldung von dem EC2 Container?

Danke!

Antwort

1

Setzen Sie Ihr Skript in einer Datei und führen Sie es mit

nohup bash <yourscript> & 

, dass Ihr Skript erlaubt, nachdem die Sitzung beendet zu laufen.