2016-05-27 11 views
1

Ich habe eine Post erhalten Shell-Skript als solche:tar.gz bis S3 Eimer

#!/bin/bash 

TGZNAME=imprv`date +%s`.tar.gz 
TGZPATH=/var/git_out/imprv/ 
TGZFULL=$TGZPATH$TGZNAME 
S3BUCKET=my-s3-bucket 
S3PATH=s3://$S3BUCKET/imprv/ 

git --work-tree=/var/git_out/imprv/imprv --git-dir=/path/to/repositories/imprv/imprv.git checkout -f 

echo " - creating tar "$TGZNAME >> /tmp/post-receive.log 
tar -cjf $TGZFULL -C /var/git_out/imprv/imprv . 
echo " - tar.gz created "$TGZFULL >> /tmp/post-receive.log 

echo " - Uploading "$TGZFULL" to bucket "$S3PATH$TGZNAME >> /tmp/post-receive.log 
s3cmd put $TGZFULL $S3PATH$TGZNAME --mime-type="application/gzip" >> /tmp/post-receive.log 
echo " - operation complete" >> /tmp/post-receive.log 

Nichts endet in meinem Eimer, aber die TAR-Datei erstellt wird, und wenn ich die manuell eingeben s3cmd Put-Befehl funktioniert gut.

Ich tailing die Protokolldatei, und alles scheint gut zu gehen, es sitzt und wartet auf die komprimierte Datei erstellt werden, bevor Sie mit der nächsten echo-Anweisung, so dass es nicht versucht, die Datei vor dem Teer zu setzen .gz-Datei wird erstellt. Danke im Voraus.

Antwort

1

Datei laden Sie sollten bis s3:

Konfigurieren CLI durch Befehl ausführen aws configure dann aws s3 sync <local_from> s3://<bucket_name> lokales Verzeichnis mit dem Eimer zu synchronisieren.

UPDATE: Vergessen Sie nicht die erforderlichen Bibliotheken zu installieren: aws cli aws s3cmd

+0

als you @ D.Dimitrioglo. Ihre Lösung brachte mich dazu, darüber nachzudenken, wie ich die AWS-CLI für den Git-Benutzer nicht konfiguriert hatte. Sobald das erledigt war, funktionierte es gut. –

Verwandte Themen