【问题标题】:Bash File to move files older than X to S3用于将早于 X 的文件移动到 S3 的 Bash 文件
【发布时间】:2018-01-26 15:27:25
【问题描述】:

我正在尝试创建一个 bash 文件以通过 cron 作业运行,该作业复制,然后通过其 CLI 将某个日期之前的本地文件/目录删除到 Amazon S3。

我已经安装了 S3 CLI 并且工作正常,只是不知道如何编写脚本来复制和删除文件。

【问题讨论】:

    标签: bash amazon-s3


    【解决方案1】:

    根据修改时间推测较旧

    find <dir_where_files_reside> -mtime +X | while read line
    do
    aws s3 cp $line s3://<bucket_name>/
    if [[ $? -eq 0 ]]; then
    rm $line
    fi
    done
    

    【讨论】:

      【解决方案2】:

      这应该可以做到,前提是您已经设置了 aws 凭据。

      #!/bin/sh
      
      ##############################################################################################################
      #
      # this script will move any log files that are older than 7 days to s3
      #
      ##############################################################################################################
      
      LOG_DIR=/some/log/dir
      DAYS_TO_HOLD=7
      NOW=`date +%Y%m%d`
      
      echo "Starting log cleanup process ..."
      
      find ${LOG_DIR} -name "*your_file_pattern_match_here*" -mtime +${DAYS_TO_HOLD} -exec aws s3 mv {} s3://somebucket-that-holds-logs \; >/dev/null 2>&1
      
      echo "Log clean up completed"

      【讨论】:

      • 还没有机会玩这个,但您是否也可以使用相同的 ${LOG_DIR} 在 S3 存储桶中创建目录? s3://somebucket/${LOG_DIR}
      • 您可以,只要您对执行这些命令的 IAM 用户/角色拥有正确的 aws 权限,对象就会在存储桶下动态创建。
      猜你喜欢
      • 2014-07-07
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 2020-03-11
      相关资源
      最近更新 更多