2016-01-29 66 views
2

我是AWS新手,特别是AWS CLI工具,但到目前为止我似乎还没有确定。输出AWS CLI“同步”结果到一个txt文件

我使用下面的命令来连接AWS S3和本地目录到我的S3存储同步:

set AWS_ACCESS_KEY_ID=AKIAIMYACCESSKEY 
set AWS_SECRET_ACCESS_KEY=NLnfMySecretAccessCode 
set AWS_DEFAULT_REGION=ap-southeast-2 
aws s3 sync C:\somefolder\Data\Dist\ s3://my.bucket/somefolder/Dist/ --delete 

这是OK文件上传并显示进度和结果为每个文件。 初始上传完成后,我假设所有新同步都会上传新的和修改过的文件和文件夹。使用--delete将删除存储桶中不再存在于本地服务器上的任何内容。

我希望能够输出每个上传的结果(或下载到其他服务器的情况下将获得正在上传的内容)到本地计算机上的.txt文件,以便我可以使用blat.exe将内容发送给将监视同步的人。

所有这些将被放入一个批量文件中,该文件将计划在夜间运行。

可以输出到.txt文件吗?如果是这样,怎么样?

回答

4

我自己没有测试过这个,但是我发现一些资源表明你可以在Windows命令提示符中重定向命令行驱动的应用程序的输出,就像你在linux中一样。

aws s3 sync C:\somefolder\Data\Dist\ s3://my.bucket/somefolder/Dist/ --delete > output.txt 

我发现的资源有:

https://stackoverflow.com/a/16713357/4471711

https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true

一旦最初的上传成功后,我假设所有新的同步只会上传新建和改造文件和文件夹。使用--delete将删除存储桶中不再存在于本地服务器上的任何内容。

这是正确的,与目标(无论是S3存储桶还是本地计算机)相比,sync会上传新文件或修改文件。

- 删除将删除不在源中的目标中的任何内容(不一定是S3存储桶)。它应该小心使用,以避免您下载,修改和同步一个文件的情况,并且由于您的本地计算机没有所有文件,使用--delete标志将删除所有其他文件目的地。

+0

不关心使用--delete,除非它修改了源代码。 源代码是我们文档的存储库,并且始终是正确的列表/版本。这台服务器只能上传(和删除)到S3的数据。 我不会使用 - 删除在其他服务器上从S3下载的批处理文件。 使用>作品!!!谢谢。 –

+0

关于这种方法的一个问题虽然 - 它可以输出到控制台以及文件? –

+0

不是我所知。我不认为在Linux中只有输出重定向到文件才是可能的。您可以尝试在Cygwin中工作,或者如您已经发现的那样,也许AWS Powershell具有一些更好的功能。 – Brooks