2017-02-04 4 views
1

Ich bin mit diesem cli:AWS S3 cli: exclude funktioniert nicht

aws s3 sync /home/me s3://meserver/test_me --exclude "*.o" --exclude "error_log" --exclude "access_log" --exclude "*.tgz" --exclude "*.tar.gz" --exclude "*.zip" --exclude "*.log" --exclude "*.tar" 

Die .zip und die Art ausschließen gut. Aber error_log ist nicht.

upload: ../../home/me/log/error_log to s3://meserver/testme/log/error_log 

Was fehlt mir? Das ist der genaue Dateiname.

+2

Können Sie versuchen '--exclude "*/error_log"' – franklinsijo

Antwort

1

Ihr Befehl sagt: --exclude "error_log"

das Objekt jedoch, dass log/error_log ist kopiert, weil es nicht error_log überein.

Bitte beachten Sie, dass der Befehl Pfade und Präfixe statt nur Dateinamen verwendet. Die key eines in Amazon S3 gespeicherten Objekts besteht eigentlich aus dem vollständigen Pfad sowie dem Namen. Daher muss error_log vollständig referenziert werden.

Sie können die Datei mit --exclude "log/error_log" ausschließen oder wenn Sie alle solche Dateien ausschließen möchten, verwenden Sie --exclude "*/error_log".

+0

Ja. Hinzufügen von '* /' vor Ihrem Muster ist die Lösung. Ich dachte, 'aws s3 sync' sollte wie rsync funktionieren, ohne das '* /'. Die Dokumentation von Amazon soll ein Beispiel geben, um dies deutlich zu machen. – nmgeek

0

Versuchen:

aws s3 sync /home/me s3://meserver/test_me --exclude "\*.o" --exclude "\*/error_log" --exclude "access_log" --exclude "\*.tgz" --exclude "\*.tar.gz" --exclude "\*.zip" --exclude "\*.log" --exclude "\*.tar" 
Verwandte Themen