je dois déplacer plusieurs fichiers d'un serveur dans S3 avec certaines exigences:commande AWS CLI à l'intérieur script bash ne peut pas localiser le fichier
- Enregistrer la progression du transfert en gouttes connexion
- En cas de chute de connexion , prochaine course doit continuer avec les fichiers non téléchargés
- Exécuter en tant que service de - TODO
Voilà donc ce que je l'ai, ce n'est pas complète, parce que je vais avoir un problème avec la localisation d'un fichier lors de la commande en cours d'exécution de l'esprit hin script, et pourtant la commande fonctionne quand on l'exécute raw.
Comment faire en sorte que le script trouve le fichier source $ dans ce script? Aussi, y a-t-il de meilleurs moyens de le faire?
Commande:
aws s3 cp '/var/www/files/folder/file1.mp4' 's3://s3-public/folder/file1.mp4'
Erreur:
script.sh: line 20: aws s3 cp '/var/www/files/folder/file1.mp4' 's3://s3-public/folder/file1.mp4': No such file or directory
code:
#!/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, question sur votre historique d'édition. Le commentaire dans Rev.2 était une erreur ou devrait-il être nettoyé? – HelpNeeder
J'ai annulé ma modification car * une partie * du vidage de code est nécessaire pour que la question ait un sens. Mais vous devriez toujours modifier la question par https://stackoverflow.com/help/mcve; vous avez publié beaucoup plus de code que ce qui est pertinent. – ruakh