使用bash脚本和`date`将名为today s date的文件夹复制到AWS s3

时间:2017-09-14 22:45:18

标签: bash amazon-s3 aws-cli

我试图让我的部分脚本每天将整个文件夹复制到AWS。无论我尝试什么,它似乎都失败并告诉我org.apache.jasper.JasperException: Unable to compile class for JSP: Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415) org.apache.jasper.compiler.Compiler.compile(Compiler.java:308) org.apache.jasper.compiler.Compiler.compile(Compiler.java:286) org.apache.jasper.compiler.Compiler.compile(Compiler.java:273) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 脚本非常简单,但它只会复制(或同步)文件夹的内容,而不会复制文件夹本身。

[Errno 21] Is a directory:

我使用的另一个脚本会创建一个包含今天日期的文件夹,然后将备份推送到该文件夹​​。我想将那天的文件夹移到AWS。我尝试#!/bin/bash today2=`date +\%Y-\%m-\%d` aws s3 sync /home/$today2 s3://testbucket/ 尝试同时使用--recursiveaws s3 cp,但它们似乎都不起作用。

如果我只是同步根文件夹,它会复制我需要的文件夹,但我不想要其他所有东西......只是今天的文件夹。提前感谢任何想法。

2 个答案:

答案 0 :(得分:0)

也许我已经解开了这个,但是这个,但为什么aws s3 sync /home/$today2 s3://testbucket/$today2不起作用?

答案 1 :(得分:0)

我有一个类似的问题,其他方面试图将文件从S3复制到文件名中的日期的本地文件夹,需要每天完成,在我的sh文件中我有下面的代码,它工作得很好。< / p>

#!/bin/bash
today=$(date +%Y%m%d)
sudo aws s3 sync s3://<S3-PATH>/ /<my_local_folder>/A/ --exclude "*" --include "startup_sh.log."$today*

* is to copy all files created today.

希望这个答案可以帮助那些需要aws s3和bash命令的人。