【发布时间】:2017-11-01 23:08:46
【问题描述】:
我需要将一些文件从一台服务器移动到 S3 并满足一些要求:
- 连接断开时保存传输进度
- 如果连接断开,下次运行必须继续处理未上传的文件
- 作为服务运行 -- TODO
所以这就是我所拥有的,它不完整,因为我在从脚本中运行命令时定位文件时遇到问题,但命令在原始运行时有效。
如何让脚本在这个脚本中找到 $source 文件?另外,有没有更好的方法呢?
命令:
aws s3 cp '/var/www/files/folder/file1.mp4' 's3://s3-public/folder/file1.mp4'
错误:
script.sh: line 20: aws s3 cp '/var/www/files/folder/file1.mp4' 's3://s3-public/folder/file1.mp4': No such file or directory
代码:
#!/bin/bash
aws_bucket='s3://s3-public/'
home='/home/user/'
files='/var/www/files/'
input="${home}videos_list.txt"
output="${home}videos_done.txt"
videos_list='()'
videos_done='()'
arrays_hydrate() {
mapfile -t videos_list < "$input"
mapfile -t videos_done < "$output"
}
aws_init() {
for index in "${!videos_list[@]}"
do
source="${videos_list[$index]}"
destination=$( echo "${videos_list[$index]}" | sed -e "s#^$files##" )
length="${#source}"
if [ "$length" -ne "0" ]; then
command="aws s3 cp '${source}' '${aws_bucket}${destination}'"
echo "$command"
$( "$command" ) &
fi
done
}
init() {
arrays_hydrate
aws_init
}
init
exit 0
【问题讨论】:
-
@ruakh,关于您的编辑历史的问题。 Rev.2中的评论是错误的还是应该清理一下这个帖子?
-
我回滚了我的编辑,因为代码转储的 部分 是必要的,这样问题才有意义。但您仍应按stackoverflow.com/help/mcve 编辑问题;您发布的代码比相关代码多得多。
标签: linux bash amazon-web-services amazon-s3 aws-cli