运行s3cmd get in background

时间:2016-07-15 18:05:29

标签: amazon-s3 amazon-ec2

我正在使用s3cmd从公共可访问的s3存储桶(s3://cgl-rnaseq-recompute-fixed)中获取约11000个文件到我的EC2容器。我使用以下命令:

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 get命令并注销EC2容器?

谢谢!

1 个答案:

答案 0 :(得分:1)

将您的脚本放在一个文件中并使用

运行它
nohup bash <yourscript> &

这将允许您的脚本在会话终止后运行。