我希望能够使用日期阈值aws S3 cp
,但它没有该功能的开关。Bash脚本添加日期阈值到S3`cp`功能
所以,我想写一个Bash脚本。使用--recursive
开关拨打aws s3 ls
可以给我一个包含日期和时间的目录列表,我想我可以用它来实现我的目标。下面是一个示例输出:
2016-12-01 18:06:40 0 sftp/ 2016-12-01 20:35:39 1024 sftp/.ssh/.id_rsa.swp 2016-12-01 20:35:39 1679 sftp/.ssh/id_rsa 2016-12-01 20:35:39 405 sftp/.ssh/id_rsa.pub
什么是遍历所有的文件,但只复制这些文件比日期更近的指示的最有效方法是什么?
这里的(不完全)脚本我有这么远:
#!/bin/bash
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-m|--mtime)
MTIME="$2"
shift 2;;
-s|--source)
SRCDIR="$2"
shift 2;;
-d|--dest)
DSTDIR="$2"
shift 2;;
*)
#echo "Unknown argument: \"$key\""; exit 1;;
break;;
esac
done
if [ ! -d $DSTDIR ]; then
echo "the directory does not exist!";
exit 1;
fi
GTDATE="$(date "+%Y%m%d%H%M%S" -d "$MTIME days ago")"
#echo "Threshold: $GTDATE"
for f in $(aws s3 ls $SRCDIR --recursive | awk '{ ??? }'); do
#aws s3 cp
done
是否有缺失在'filetime = $(date -ud“$ {day} T $ {time}%s)中双引号'' – alphadogg
@alphadogg是的,谢谢。 – sorontar