J'ai un Linode (Ubuntu 16.04) à partir duquel j'essaie de copier des fichiers vers un seau AWS S3 via une tâche cron appelant un script, mais le journal sort : upload failed: ../path/file.ext to s3://bucket/prefix/file.ext Unable to locate credentials
Le script tar
s un répertoire, puis télécharge ce tar vers mon seau s3
- Le script fonctionne du début à la fin si je l'appelle directement via
sudo
- En tant que tâche cron de la racine, la
tar
fonctionne, mais leaws
le téléchargement ne le fait pas (avec l'erreur notée ci-dessus) - En tant que tâche cron [utilisateur], la fonction
tar
échoue (intentionnellement lié aux permissions), mais l'optionaws
Le téléchargement réussit. - Lorsque j'ai installé AWS CLI, j'ai oublié la formulation exacte, mais j'ai choisi de l'installer pour tous les utilisateurs.
Les choses que j'ai essayées
- Le fait que mon script appelle
aws
directement à/usr/local/bin/aws
- Ajout de
/usr/local/bin/aws
au PATH dans la crontab, et aussi dans mon script. - Ajout de
AWS_CONFIG_FILE="/home/[user]/.aws/config"
dans la crontab, et aussi dans mon script. - Ré-exécution de
aws configure
en tant que racine - Suivant ce conseil et de comparer les environnements cron et interactifs. Mon site env.cron
PATH
comprend tout ce qui est énuméré dans mon env.interactifPATH
plus quelques autres, voire des doublons - est-ce mauvais ?
Il y a beaucoup d'autres déclarations dans mon env.interactif (1810 lignes) par rapport à mon env.cron (36 lignes). Cela doit être quelque chose dans mes différences d'environnement, non ? J'ai cherché dans mon env.interactif pour toute instance de aws
mais il n'y en a pas, même si cet env. fonctionne très bien. Des conseils sur d'autres éléments spécifiques à rechercher là-dedans ?
Toutes les idées et l'aide sont appréciées ! Merci !