Introdução ao comando AWS S3CMD por exemplos

Introdução ao comando AWS S3CMD por exemplos

O artigo a seguir fornecerá alguns exemplos básicos sobre como usar a AWS S3CMD comando:

Liste tudo

O primeiro S3CMD Comando que abordaremos listará todos os dados disponíveis (objetos) sob nossa conta AWS S3. Isso listará todos, baldes, diretórios e arquivos:

$ s3cmd la 

Crie um balde

Agora, é hora de criar um novo balde. Você pode pensar em um bucket como um diretório de nível superior, onde pode armazenar e classificar elegantemente seus dados. O nome do balde deve ser único em todo o sistema, caso contrário, você receberá um erro: Erro: S3 Erro: 409 (BucketalReadyExists). O primeiro balde que vamos criar será chamado LinuxConfigorg:

$ s3cmd mb s3: // linuxconfigorg bucket 's3: // linuxconfigorg/' criado 

Liste todos os baldes disponíveis

Agora, que criamos nosso primeiro balde, é hora de confirmar sua existência listando todos os baldes S3 existentes:

$ S3CMD LS 2016-01-18 02:09 S3: // LinuxConfigorg 

Copiar arquivo no balde

Nosso balde S3: // LinuxConfigorg está disponível e pronto para receber nossos dados. Primeiro, precisamos criar algum arquivo de amostra, por exemplo. Foobar E então copie -o para o nosso novo balde:

$ ECHO LinuxConfig.org> foobar $ cat foobar linuxconfig.org 

Vamos copiar este novo arquivo em nosso balde LinuxConfigorg:

$ s3cmd put foobar s3: // linuxconfigorg/ 

Confirme que o arquivo foi copiado:

$ S3CMD LS S3: // LinuxConfigorg/2016-01-18 02:21 16 S3: // LinuxConfigorg/Foobar 


Copie arquivos entre baldes

O S3CMD O comando também permite copiar arquivos entre dois baldes S3. No exemplo seguinte, primeiro criaremos um novo balde chamado LinuxConfigorg2 E então vamos copiar nosso Foobar arquivo localizado em LinuxConfigorg balde para LinuxConfigorg2 balde:

$ s3cmd mb s3: // linuxconfigorg2 bucket 's3: // linuxconfigorg2/' criou $ s3cmd cp s3: // linuxconfigorg/foobar s3: // linuxconfigorg2/remote: 's3: // linuxfligor : // linuxconfigorg2/foobar ' 

Mova arquivos entre baldes

O mesmo que com o comando de cópia, também podemos mover dados entre baldes. No exemplo seguinte, vamos mover o arquivo Fooobar de LinuxConfigorg2 balde para LinuxConfigorg e renomeando -o no processo para Foobar2:

$ s3cmd mv s3: // linuxconfigorg2/foobar s3: // linuxconfigorg/foobar2 move: 's3: // linuxconfigorg2/foobar' -> 's3: // linuxconfigorg/foobar2' 

Como resultado do processo de movimento nosso LinuxConfigorg2 Bucket agora está vazio:

$ S3CMD LS S3: // LinuxConfigorg2/$ 

Sincronize um diretório de localidade

S3CMD O comando também permite uma sincronização de arquivo. Observe que o comando de sincronização do S3CMD não sincroniza diretórios vazios. Ele usa md5sum e fileSize para sincronizar arquivos. Se você estiver vazio, ele não será criado dentro de um balde de destino.
Exemplo:

$ mkdir -p dir1/dir2/dir3 $ touch dir1/dir2/file2 $ s3cmd sync dir1/s3: // linuxconfigorg/ 

No exemplo acima, criamos três diretórios contendo apenas um único arquivo dentro Dir2 diretório. Como resultado, S3CMD comando omitido diretórios vazios, enquanto apenas Dir2 foi copiado para o nosso balde S3.

Criando um diretório/pasta

Não há necessidade de criar um diretório antes de enviar seus dados. Por exemplo, o comando Linux a seguir copiará um arquivo para S3: // LinuxConfigorg/Bucket ao criar um novo diretório durante o processo:

$ s3cmd put foobar s3: // linuxconfigorg/new_directory/$ s3cmd la dir s3: // linuxconfigorg/dir2/dir s3: // linuxconfigorg/newdirectory/2016-01-18 02:21 16 s3: // linuxf -01-18 02:33 16 s3: // linuxconfigorg/foobar2 


Remoção do arquivo

O seguinte comando linux removerá os dois Foobar e Foobar2 arquivos atualmente localizados dentro LinuxConfigorg balde:

$ s3cmd rm s3: // linuxconfigorg/foobar2 s3: // linuxconfigorg/foobar delete: 's3: // linuxconfigorg/foobar2' delete: 's3: // linuxconfigorg/foobar' 

Como você pode ver S3CMD O comando aceita vários argumentos e, portanto, somos capazes de remover vários arquivos usando um único comando rm.

Bucket inteiro vazio

Em seguida, mostrará como remover todos os arquivos e diretórios em um balde. Por exemplo, o seguinte comando Linux removerá todos os arquivos e diretórios disponíveis localizados dentro LinuxConfigorg S3 Bucket:

$ s3cmd del -r ---for s3: // linuxconfigorg/delete: 's3: // linuxconfigorg/dir2/file2' delete: 's3: // linuxconfigorg/new_directory/foobar' 

Remova o balde

Antes de remover o balde S3, o balde deve estar vazio. Usando o comando anterior, removemos todos os objetos de LinuxConfigorg S3 Bucket e, portanto, agora pode ser removido:

$ s3cmd rb s3: // linuxconfigorg/bucket 's3: // linuxconfigorg/' removido 

Compactar o arquivo antes de fazer o upload

O comando Linux a seguir é mais avançado, pois usa tubos e stdout para primeiro compactar o arquivo com uma compactação GZIP máxima e transmiti -lo diretamente para o S3 Bucket:

$ gato foobar | gzip -9 | s3cmd put - s3: // linuxconfigorg/foobar.gz '' -> 's3: // linuxconfigorg/foobar.gz '[Parte 1, 36b] 36 de 36 100% em 1s 32.90 B/S feito 

Diretório de compactação antes de fazer upload

Da mesma forma que o comando acima, também podemos comprimir o diretório inteiro antes de ser carregado no S3 Bucket:

$ tar cz dir1/ | gzip -9 | s3cmd put - s3: // linuxconfigorg/dir1.alcatrão.gz '' -> 's3: // linuxconfigorg/dir1.alcatrão.GZ '[Parte 1, 196b] 196 de 196 100% em 0s 336.18 b/s feito 

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Comandos Linux: os 20 comandos mais importantes que você precisa para…
  • Comandos básicos do Linux
  • Ubuntu 20.04 Guia
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Sistema Linux Hung? Como escapar para a linha de comando e…
  • Mastering Bash Script Loops
  • Exemplos úteis de linha de comando bash e exemplos de truques - Parte 1