需要解压文件然后自动移动到AWS S3存储桶

需要解压文件然后自动移动到AWS S3存储桶

我在 ubuntu 中有一个目录示例:

/home/ubuntu/mainfiles/

每天只上传 zip 文件。我需要解压缩这些文件并将提取的文件移动到 S3 存储桶。每个解压文件的文件应以 5 分钟的间隔移动到 s3。我还需要确保重复的文件不会上传到 s3。

我该如何为此编写脚本?

我目前正在做的是

  • /home/ubuntu/mainfiles/每 5 分钟从目录复制最旧的文件cron,然后将其存储在temp1目录中。
  • 然后我从目录中解压缩所有文件temp1并将提取的文件移动到temp2目录中。
  • 最后我将temp2目录中的所有文件移动到 s3。

temp1但我认为上述方法可能会失败,因为我每次都必须清理文件夹。另外,重复的文件可能会移动到 s3,因为我不知道如何获取文件名并使用随机名称重命名它,然后移动到 s3。

有人可以用正确的方法为此提供一个演示 shell 脚本吗?

答案1

简单地说,您可以使用 bash 实现自动化......

#!/bin/bash
DIR='/home/ubuntu/mainfiles'
s3_DIR='/mnt/s3bucket'
for i in $DIR/*.zip;do
    unzip $DIR/$i.zip -d $S3_DIR/ && mv $DIR/$i.zip $DIR/$i.zip.done # extract and mark
    fdupes -dN $S3_DIR  # remove duplicate files
done

在 cronjob 中添加此@每 5 分钟一次

相关内容