Slik administrerer du Amazon S3 fra kommandolinjen
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.