Amazon S3 er et bra sted å sikkerhetskopiere og lagre filene dine billig på skyen. Mens noen bruker den til å lagre sine personlige data, er det andre som bruker den til å lagre bilder og skript for sine nettsteder, og til og med bruke den som en CDN. På skrivebordet kan du enkelt få tilgang til og administrere Amazon S3-kontoen din med apps som S3Fox, CloudBerry, DragonDisk, etc., men hva om du trenger å få tilgang til den fra kommandolinjen? Det er her S3cmd kommer i brukbar.

S3cmd er et gratis kommandolinjeverktøy for å laste opp, hente og administrere data i Amazon S3. Annet enn S3, støtter det også andre leverandører av skylagringsleverandører som bruker S3-protokollen, for eksempel Google Cloud Storage eller DreamHost DreamObjects. Den beste bruken for dette verktøyet er på ekstern server der alt er gjort på kommandolinjen. Alternativt kan du også bruke den til å lage batchskript og automatisk sikkerhetskopiering til S3.

S3cmd er skrevet i Python, så det handler om støtte i alle operativsystemer, så lenge Python er installert.

Installasjon

S3cmd finnes i de fleste Linux-repositorier. I Debian / Ubuntu, eller andre apt-baserte distroer, kan du installere S3cmd med kommandoen:

 sudo apt-get installere s3cmd 

For Fedora, Centos eller noen annen yum-basert distro:

 sudo yum installere s3cmd 

Alternativt kan du laste ned kildekoden, pakke ut pakken og kjøre installasjonsprogrammet:

 sudo python setup.py installere 

Starter

Før du kommer i gang, må du ha din Amazon S3 tilgangs- og hemmelige nøkler klar. Du kan finne tilgangs- og hemmelige taster i Amazon Management Console.

For å komme i gang, åpne terminalen og skriv:

 s3cmd - konfigurere 

Det vil først be deg om å legge inn dine tilgangs- og hemmelige taster.

Deretter må du skrive inn en krypteringsnøkkel og banen til GPG-programmet.

Etter krypteringsnøkkelen er spørsmålet om å bruke HTTPS-protokollen. Standardalternativet er "Nei", men du kan stille til "Ja" for en sikrere tilkobling til Amazon S3. Legg merke til at bruk av HTTPS-protokollen senker overføringshastigheten og kan ikke brukes hvis du bruker en proxy.

Når du har konfigurert og testet innstillingene, kan du fortsette å bruke S3cmd. Hvis du må endre innstillingene, kan du enten redigere .s3cfg- filen i din s3cmd --configure eller kjøre kommandoen s3cmd --configure igjen.

bruk

Først, for å se skuffene i S3-kontoen din, kan du bruke kommandoen ls .

 s3cmd ls 

For å lage en bøtte, bruk kommandoen mb :

 s3cmd mb s3: // test-s3cmd-bøtte 

Legg merke til at du må prefikse bøttenavn med "s3: //"

For å liste innholdet i en bøtte, bruk kommandoen ls sammen med bøtteavnet. For eksempel:

 s3cmd ls s3: // test-s3cmd-bøtte 

Laster opp fil til bøtte

Den enkleste måten å laste opp en fil via S3cmd er med put kommandoen. For eksempel:

 s3cmd sette tekst.txt s3: // test-s3cmd-bøtte 

I tillegg kan du bruke - --encrypt til å kryptere filen før du laster opp til S3.

 s3cmd sette - kryptert tekst.txt s3: // test-s3cmd-bøtte 

Standard tillatelsen for put kommandoen er privat, noe som betyr at filen bare kan vises av deg. Hvis du trenger filen for å være offentlig tilgjengelig, kan du legge til parameteren --acl-public

 s3cmd sette --acl-public text.txt s3: // test-s3cmd-bøtte 

For mer granulær kontroll, bruk --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID . For eksempel:

 s3cmd sette --acl-grant = les: [email protected] text.txt s3: // test-s3cmd-bucket 

"PERMISSION" kan være "lese", "skrive", "read_acp, " "write_acp, " "full_control, " "all."

Henter filer fra bøtte

For å hente en fil, bruk kommandoen get .

 s3cmd få s3: //test-s3cmd-bucket/text.txt text.txt 

For å laste ned alle filer i bøtta, legger du ganske enkelt til --recursive parameteren.

 s3cmd få - recursive s3: // test-s3cmd-bucket 

Slette filer fra bøtte

Slett kommandoen for s3cmd er ganske enkelt del . For eksempel:

 s3cmd del s3: //test-s3cmd-bucket/text.txt 

Du kan også bruke --recursive parameteren for å slette alle filer i bøtta.

 s3cmd del --recursive s3: // test-s3cmd-bucket 

For flere S3cmd-kommandoer, sjekk ut brukerhåndboken her.

Avansert bruk: Synkroniser en mappe til S3

La oss si at du lagrer alle dine viktige filer i en mappe, og du vil at den skal synkroniseres til S3. S3cmd kommer med en sync som kan synkronisere den lokale mappen til fjernmålet.

 s3cmd synkronisering - fjernet fjernet ~ / SecretFolder s3: // my-secret-bucket / 

Alt du trenger å gjøre er å lage en cronjob for å kjøre synkroniseringskommandoen regelmessig.

1. Åpne crontab.

 crontab -e 

2. Legg til følgende linje til slutten av crontab. Lagre og avslutt crontab.

 5 * * * * s3cmd synkronisering - fjernet fjernet ~ / SecretFolder s3: // my-secret-bucket / 

Det er det. Systemet vil nå synkronisere den hemmelige mappen til S3 hvert 5. minutt. Du kan endre verdien for å kjøre synkroniseringskommandoen i ditt foretrukne intervall. Hver fil du fjernet fra den hemmelige mappen vil bli fjernet fra S3 også.

Konklusjon

For de som trenger å jobbe i kommandolinjemiljøet, er S3cmd virkelig et flott verktøy for å få tilgang til og administrere Amazon S3 fra kommandolinjen. Ikke bare er det enkelt å bruke, det kommer også med mange alternativer for avansert bruk og skripting behov.