====== 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}}