batch-file - 批处理文件仅将今天的文件上传到 S3(获取文件名作为列表,循环,执行 cp 命令)

标签 batch-file amazon-s3 amazon-ec2 aws-cli

我需要创建一个脚本,以在调度程序基础上使用 aws s3 cp 命令仅将今天在 Z:\ 驱动器中创建的文件复制到 AWS S3。

例如在 Z:\中,目前我有这些文件:

Filename                                            Date Modified
BELSIZE.0.DB2.NODE0000.CATN0000.20160313090011.001  3/13/2016 9:00 AM
BELSIZE.0.DB2.NODE0000.CATN0000.20160314090015.001  3/14/2016 9:00 AM
BELSIZE.0.DB2.NODE0000.CATN0000.20160315090010.001  3/15/2016 9:00 AM
BELSIZE.0.DB2.NODE0000.CATN0000.20160315100012.001  3/15/2016 10:00 AM

我只需要将日期为 2016 年 3 月 15 日的最后 2 个文件复制到 AWS S3。

我现在拥有的是:

  1. 列出今天创建的路径+文件名:

    forfiles /P "Z:\" /s /m *.* /d +0 /c "cmd /c echo @path
    
  2. 将文件复制到 AWS S3:

    aws s3 cp Z:\BELSIZE.0.DB2.NODE0000.CATN0000.20160315090010.001 s3://backup
    

我正在考虑将 1) 作为一个列表,遍历 1) 并执行 2)。我该怎么做?

我试过下面的命令。今天创建的文件不会复制到 S3。

forfiles /P "Z:\" /s /m *.001 /d +0 /c "cmd /c aws s3 cp @path s3://backup"

最佳答案

使用 WinSCP 很容易。要仅上传今天的文件,请使用如下批处理文件:

winscp.com /log=S3.log /ini=nul /command ^
    "open s3://S3KEY:S3SECRET@s3.amazonaws.com/" ^
    "put -filemask=>=today Z:\* /bucket/" ^
    "exit"

>=today keyword仅受 WinSCP 5.15 及更新版本支持。在旧版本中,您可以使用 %TIMESTAMP% syntax :

    "put -filemask=>=%%TIMESTAMP#yyyy-mm-dd%% Z:\* /bucket/" ^

您需要URL-encode special characters in the credentials . WinSCP GUI 可以 generate an S3 script template ,就像上面那个,给你的。

或者,从 WinSCP 5.19 开始,您可以使用 -username-password不需要任何编码的开关:

    "open s3://s3.amazonaws.com/ -username=S3KEY -password=S3SECRET" ^

引用资料:

(我是 WinSCP 的作者)

关于batch-file - 批处理文件仅将今天的文件上传到 S3(获取文件名作为列表,循环,执行 cp 命令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36001715/

相关文章:

ruby - 我可以在 Windows 中将 Sass 与批处理脚本一起使用吗

windows - 在 CMD 搜索中排除 Windows 文件夹

batch-file - 如何使用jenkins在命令提示符中运行Grails

amazon-s3 - cfdirectory 在 S3 文件夹上的 action=list 时用 + 字符替换空格

amazon-ec2 - 如何动态构建 terraform local_file

php - 使用 Amazon Web Services for EC2 设置数据驱动网站的综合指南

batch-file - 如何使用批处理来确定计算机是使用 FAT32 还是 NTFS?

html - AWS Cloudfront视频速度加载

amazon-web-services - AWS S3 内联显示文件而不是强制下载

amazon-web-services - Ansible 配置在 Ubuntu 16.04LTS 中失败