Versuch, ein einfaches AWS CLI-Sicherungsskript auszuführen. Es durchläuft Zeilen in einer Include-Datei, sichert diese Pfade bis S3 und gibt die Ausgabe in eine Protokolldatei aus. Wenn ich diesen Befehl direkt ausführe, läuft er fehlerfrei. Wenn ich es über CRON ausführe, wird in meinem Ausgabeprotokoll der Fehler "Anmeldeinformationen können nicht gefunden werden" angezeigt.
Das Shell-Skript:
AWS_CONFIG_FILE="~/.aws/config"
while read p; do
/usr/local/bin/aws s3 cp $p s3://PATH/TO/BUCKET --recursive >> /PATH/TO/LOG 2>&1
done </PATH/TO/INCLUDE/include.txt
Ich habe die Zeile erst zur Konfigurationsdatei hinzugefügt, nachdem der Fehler aufgetreten ist, weil ich dachte, dies könnte ihn beheben (obwohl ich mir ziemlich sicher bin, dass AWS dort standardmäßig angezeigt wird).
Shell-Skript wird als root ausgeführt. Ich kann die AWS-Konfigurationsdatei am angegebenen Speicherort sehen. Und alles sieht gut für mich aus (wie ich schon sagte, es läuft gut außerhalb von CRON).
~/.aws/config
.