aws:s3cmd
Table of Contents
s3cmd
context
dit document beschrijft de werking van s3cmd, een commandline tool om S3 buckets te beheren vanaf Linux.
systeemvereisten
- een AWS gebruiker
- programmatic access (Access key and Secret key)
- toegang tot S3buckets
installatie
- meld aan op je linux server en installeer via pip
- voer uit
sudo pip install s3cmd -vv --log /tmp/s3cmd.log
- maak als volgt een configuratie bestand aan:
s3cmd --configure
hoofdzakelijk wordt je gevraagd naar Access key en Secret key waarmee je de cmds uitvoert. Bestand wordt bewaard als ~/.s3cfg. Nu worden alle commando's met deze credentials uitgevoerd.
werking
- s3cmd heeft een configuratie bestand (.s3cfg) nodig om te kunnen aanmelden bij S3:
s3cmd --configure
- geef Access Key op van de gebruiker die de verbinding maakt.
- geef bijhorende Secret Key op.
- kies Default Region
- geef een Encryption password op waarmee je de bestanden wilt versleutelen
- controleer de instellingen en bewaar.
Je kan voortaan met die instellingen verbinden. LET OP: bewaar dit bestand met je leven. Alle instellingen staan in plain-text in dat bestand!!!
- de commando's lijken een mix van Linux (ls, rm, du, …) en FTP-commands (get, put, del). De meestgebruikte staan in een lijstje hieronder:
commando | actie | voorbeeld |
---|---|---|
s3cmd ls | geef de (inhoud van) buckets | s3cmd ls s3://backup.bucky |
s3cmd la | geef de inhoud van ALLE buckets | s3cmd la |
s3cmd put <bestand> <s3bucket> | upload een bestand | s3cmd put backup.sh s3://backup.bucky |
s3cmd get <s3bucket>/<bestand> | upload een bestand | s3cmd get s3://backup.bucky/backup.sh |
s3cmd rm <s3bucket>/<bestand> | verwijder een bestand | s3cmd rm s3://backup.bucky/backup.sh |
s3cmd sync <local dir> <s3bucket> | sync een directory met een bucket | s3cmd sync /mnt/data/test s3://backup.bucky |
s3cmd du <s3bucket> | schrijfgebruik van bucket nakijken | s3cmd du s3://backup.bucky |
s3cmd info <s3bucket> | info over een bestand opvragen |
!! Uitkijken met sync!!
Elk bestand dat je upload wordt immers aangerekend als een schrijfactie! Een directory met -tig bestanden brengt je al snel bij je Free Tier limiet van 2000 uploads. Maak daarom liever een tar.gz bestand aan dat je dan upload. (zie: backup.sh)
troubleshooting
- voer dezelfde actie uit in debug
sudo s3cmd -d get s3://backup.bucky/dokuwiki_17102019_1207.tar.gz DEBUG: ConnMan.get(): creating new connection: https://backup.bucky.s3.amazonaws.com DEBUG: Recognized AWS S3 host, disabling initial SSL hostname check DEBUG: httplib.HTTPSConnection() has only context DEBUG: non-proxied HTTPSConnection(backup.bucky.s3.amazonaws.com) DEBUG: checking SSL subjectAltName against amazonaws.com DEBUG: format_uri(): /dokuwiki_17102019_1207.tar.gz DEBUG: Response: {'status': 400, 'headers': {'x-amz-region': 'eu-west-2', 'x-amz-id-2': 'suoKZmMRAFsgzBNneFoaVlB7lnlzWtKR9FN3GMTk5yxkmZ91NerARxFszn9tOlolBpTCQKW9iaM=', 'server': 'AmazonS3', 'transfer-encoding': 'chunked', 'connection': 'close', 'x-amz-request-id': '3D700501A53F1CC8', 'date': 'Thu, 17 Oct 2019 12:47:53 GMT', 'content-type': 'application/xml'}, 'reason': 'Bad Request'} DEBUG: S3Error: 400 (Bad Request) DEBUG: HttpHeader: x-amz-region: eu-west-2 DEBUG: HttpHeader: x-amz-id-2: suoKZmMRAFsgzBNneFoaVlB7lnlzWtKR9FN3GMTk5yxkmZ91NerARxFszn9tOlolBpTCQKW9iaM= DEBUG: HttpHeader: server: AmazonS3 DEBUG: HttpHeader: transfer-encoding: chunked DEBUG: HttpHeader: connection: close DEBUG: HttpHeader: x-amz-request-id: 3D700501A53F1CC8 DEBUG: HttpHeader: date: Thu, 17 Oct 2019 12:47:53 GMT DEBUG: HttpHeader: content-type: application/xml DEBUG: object_get failed for './dokuwiki_17102019_1207.tar.gz', deleting... DEBUG: DeUnicodising u'./dokuwiki_17102019_1207.tar.gz' using ANSI_X3.4-1968 ERROR: S3 error: 400 (Bad Request)
problemen, problemen
fout bij downloaden (get) van een bestand
fout:ERROR: S3 error: 400 (Bad Request)
oorzaak: probleempje met s3cmd versie 1.16, blijkbaar
oplossing: verwijder s3cmd via apt-get en installeer via pip
meer info
aws/s3cmd.txt · Last modified: 2024/11/16 18:14 by 127.0.0.1