使用 bash 脚本和"date"将名为今天日期的文件夹复制到 AWS s3



我试图让我的一部分脚本每天复制整个文件夹。无论我尝试什么,似乎都失败了,告诉我[Errno 21] Is a directory:脚本非常简单,但是它将仅复制(或同步)文件夹的内容,而不是文件夹本身。

#!/bin/bash
today2=`date +%Y-%m-%d`
aws s3 sync /home/$today2 s3://testbucket/

我使用的另一个脚本创建了一个与今天的日期创建一个文件夹,然后将备份推入其中。我想将当天的文件夹移至AWS。我已经尝试使用--recursive尝试使用aws s3 cpaws s3 sync,但它们似乎都没有用。

如果我只是同步根文件夹,它将通过我需要的文件夹复制,但是我不希望其中所有其他内容……只是今天的文件夹。事先感谢您的任何想法。

也许我认为这是不明智的,但是为什么aws s3 sync /home/$today2 s3://testbucket/$today2不起作用?

@jamie starke答案有助于通过复制命令

解决我的任务

为我工作:

#!/bin/sh
TODAYBKPDIR="$(date "+%Y-%m-%d")"
aws s3 cp --recursive /path/to/your/directory/"$TODAYBKPDIR" s3://your-bucket-name/"$TODAYBKPDIR"

我也有一个类似的问题,另一种方法是尝试将文件从s3复制到文件名中的日期,需要每天完成,在我的sh文件中,我有在代码下方,它运行得很好。

#!/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命令的人。

相关内容

最新更新