2016-07-15 2 views
0

Я использую s3cmd, чтобы обойти ~ 11000 файлов из общедоступного ведра s3 (s3://cgl-rnaseq-recompute-fixed) в мой контейнер EC2. Я использую следующую команду:Запуск s3cmd get in background

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

где tcga-manifest является файл со списком файлов, чтобы получить:

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 

Однако я хочу, чтобы выполнить команду GET в фоновом режиме, так что когда я выхожу из контейнера EC2, он все еще работает. Кроме того, поскольку я загружаю большое количество файлов, соединение ssh прерывается. Я попытался с помощью &, который не работал:

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

Как можно запустить команду s3cmd получить в фоновом режиме и выхода из системы контейнера EC2?

Спасибо!

ответ

1

Поместите свой скрипт в файл и запустить его с

nohup bash <yourscript> & 

, что позволит ваш скрипт для запуска после сеанса завершается.