Ich bin sicher, das muss ein offensichtlicher Fehler sein, aber ich bin ratlos. Die Shell-Skript erzeugt unter einer Datenbanksicherung und gzips es erfolgreich, aber aws cli gibt Fehler:AWS CLI Sync-Fehler - Datei nicht gefunden
warning: Skipping file /home/bar/dbsnapshots/foo-12-11-2016.sql.gz/. File does not exist.
ich den Schrägstrich in diesem Fehler zu sehen, aber nicht verstehen, warum es angezeigt wird, oder wenn in der Tat, aws sucht aus irgendeinem Grund nach einem Verzeichnis namens foo-12-11-2016.sql.gz?
ls
zeigt die Datei wie erwartet.
vi /home/bar/dbsnapshots/foo-12-11-2016.sql.gz
öffnet die gz-Datei erfolgreich.
Ich habe versucht, die AWS-Befehl mit und ohne Anführungszeichen um den Pfad, der gleiche Fehler. Ich habe den Befehl aws selbst außerhalb des Shell-Skripts von der Befehlszeile aus versucht, der gleiche Fehler.
zB/home/bar/bin/aws s3 sync "/home/bar/dbsnapshots/foo-12-11-2016.sql.gz" s3://foo
Die AWS CLI lokal von meinem Benutzer auf diesem gemeinsamen Server in/home/bar/awscli-Bundle installiert und konfiguriert ist und war in der Lage einen Eimer auf S3 zu erstellen. Über die AWS-Browser-GUI überprüft.
#!/bin/bash
TODAY=`/bin/date +"%-m-%-d-%Y"`
BU_DIR=/home/bar/dbsnapshots
LOCALFILE=$BU_DIR/foo-${TODAY}.sql
EXCLUDED_TABLES=(
membersBackupV2
transactionReferer
transpages
)
IGNORED_TABLES_STRING=''
for TABLE in "${EXCLUDED_TABLES[@]}"
do :
IGNORED_TABLES_STRING+=" --ignore-table=bar_membership.${TABLE}"
done
mysqldump --defaults-extra-file="${BU_DIR}/.my.cnf" --all-databases ${IGNORED_TABLES_STRING} > ${LOCALFILE}
/bin/gzip ${LOCALFILE}
/home/bar/bin/aws s3 sync ${LOCALFILE}.gz s3://foo
Ugh. Vielen Dank. Ich wusste, dass es ein offensichtlicher Fehler wäre ... – jerrygarciuh