Ich versuche, meine EC2-Instanz mit den offiziellen Tools von Amazon, die auf der EC2-Instanz vorinstalliert sind, auf S3 zu sichern. Ich habe Schwierigkeiten, mit dem Befehl sync Verzeichnisse von der Synchronisierung auszuschließen. In der Dokumentation klingt es so, als wäre es einfach, die Option '--exclude' zu verwenden. Ich konnte es jedoch nicht zum Laufen bringen.
Ich verwende die neueste Version, die über yum verfügbar ist:
[root@HOSTNAME ~]# aws --version
aws-cli/1.1.1 Python/2.6.8 Linux/3.4.57-48.42.amzn1.x86_64
Dies ist der Befehl, mit dem ich Probleme habe:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*.git/*'
Ich möchte alle Ordner mit dem Namen '.git' und alle Dateien in diesen Ordnern von der Synchronisierung ausschließen.
Nach der Dokumentation zu urteilen Das Muster, das ich '--exclude' gegeben habe, sollte funktionieren. Das gesamte .git-Verzeichnis und alle seine Dateien werden jedoch weiterhin synchronisiert. Hier ist eine beispielhafte Ausgabezeile:
upload: ../var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77 to s3://backup-bucket/var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77
Ich habe die folgenden Befehle ausprobiert, bei denen alle Ordner mit dem Namen '.git' nicht ausgeschlossen werden konnten:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude *.git/*
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude */.git/*
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '.git'
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*\.git/*'
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '.*\.git/.*'
Und vielleicht am beunruhigendsten ist, dass dieser Befehl nichts von der Synchronisierung ausschließt:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*'
Tatsächlich scheint '--exclude' nur zu funktionieren, wenn sich das Globbing auf der rechten Seite eines absoluten Pfades befindet. Dies schließt beispielsweise den Ordner .git unter /var/www/site/.git aus:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '/var/www/site/.git/*'
das schließt aber nichts aus:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*/www/site/.git/*'
Ich habe viele Websites in / var / www und viele Ordner, die ich von der Synchronisierung ausschließen möchte, z. B. '.git', 'parsed', 'cache' usw. Es wäre schrecklich, absolute Pfade für alle bereitstellen zu müssen .
Ich hoffe, dass es etwas Einfaches gibt, das ich hier falsch mache. Vielen Dank für Ihre Hilfe.
quelle