====== s3cmd======
[[aws:aws|{{ :dokuwiki:aws_logo_smile_1200x630.png?120|}}]]
===== context=====
dit document beschrijft de werking van **s3cmd**, een commandline tool om [[aws:s3_buckets|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 [[linux:pip|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 | upload een bestand | s3cmd put backup.sh %%s3://backup.bucky%% |
| s3cmd get / | upload een bestand | s3cmd get %%s3://backup.bucky/backup.sh %% |
| s3cmd rm / | verwijder een bestand | s3cmd rm %%s3://backup.bucky/backup.sh %% |
| s3cmd sync | sync een directory met een bucket | s3cmd sync /mnt/data/test %%s3://backup.bucky %% |
| s3cmd du | schrijfgebruik van bucket nakijken | s3cmd du %%s3://backup.bucky %% |
| s3cmd info | info over een bestand opvragen | s3cmd info %%s3://backup.bucky/backup.sh %%
!! 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: [[linux:backup.sh|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 [[linux:pip|pip]]
===== meer info =====
* [[http://s3tools.org|project pagina]]
{{tag>AWS cloud linux installatie}}