【发布时间】:2018-01-26 15:27:25
【问题描述】:
我正在尝试创建一个 bash 文件以通过 cron 作业运行,该作业复制,然后通过其 CLI 将某个日期之前的本地文件/目录删除到 Amazon S3。
我已经安装了 S3 CLI 并且工作正常,只是不知道如何编写脚本来复制和删除文件。
【问题讨论】:
我正在尝试创建一个 bash 文件以通过 cron 作业运行,该作业复制,然后通过其 CLI 将某个日期之前的本地文件/目录删除到 Amazon S3。
我已经安装了 S3 CLI 并且工作正常,只是不知道如何编写脚本来复制和删除文件。
【问题讨论】:
根据修改时间推测较旧
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
【讨论】:
这应该可以做到,前提是您已经设置了 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"
【讨论】: