Restaurar um backup de um arquivo ZIP – como os gerados pelo nosso recurso de backup para download – às vezes pode ser um processo demorado. Se você descompactar um arquivo ZIP localmente em seu computador antes de fazer o upload do backup com SFTP, você provavelmente terá um gargalo porque o SFTP só pode transferir um número limitado de arquivos ao mesmo tempo.

Felizmente, existe um método mais rápido que pode reduzir significativamente o tempo de restauração do backup.

Ao invés de descompactar um arquivo ZIP localmente e fazer o upload da pasta descompactada, muitas vezes é mais rápido fazer o upload de um arquivo ZIP para o servidor antes de descompactá-lo.

Neste post, vamos explicar como descompactar um arquivo carregado em um servidor usando SSH. Para nosso exemplo, vamos descompactar um arquivo de backup em um servidor Kinsta, mas a mesma técnica pode ser usada para descompactar qualquer arquivo ZIP em qualquer servidor Linux.

Passo 1 – Faça o login no seu servidor com SSH

O primeiro passo é fazer login no seu servidor com SSH. Para fazer isso, você vai precisar de um cliente SSH como o aplicativo Terminal embutido em MacOS e Linux ou o cliente PuTTY livre no Windows, e os detalhes de login do SSH – endereço IP, nome de usuário, senha (opcional), e porta.

Senha vs Autenticação de Chave Pública

Você pode estar se perguntando porque a senha é opcional. Ao entrar no seu servidor com SSH, há dois métodos de autenticação – senha e autenticação de chave pública. O método de autenticação de senha usa uma senha em texto simples.

A autenticação por chave pública é amplamente considerada como uma alternativa mais segura à autenticação por senha. O método de autenticação de chave pública requer que você gere um par de chaves – chave pública e chave privada. A chave pública é carregada para o servidor, enquanto a chave privada é armazenada localmente no seu computador. Durante o processo de login SSH, o link criptográfico entre as duas chaves é verificado para autenticar o usuário.

Usuários Kinsta podem carregar chaves públicas SSH no painel do MyKinsta. Se você estiver usando outro provedor de servidor, nós recomendamos dar uma olhada na documentação relevante sobre como fazer upload de chaves SSH para o servidor.

Agora que já cobrimos as diferenças entre senha e autenticação de chave pública, vamos passar para o processo de login SSH. Para usuários Kinsta, os detalhes de login SSH juntamente com o comando completo do terminal SSH são fornecidos no painel do MyKinsta.

Comando terminal SSH em MyKinsta.
Comando terminal SSH em MyKinsta.

Se você estiver usando outro web host ou provedor de servidor, os detalhes do SSH normalmente também podem ser encontrados em seu painel de controle.

Após encontrar os detalhes de login, você pode fazer o login com o seguinte comando SSH.

ssh username@ip-address -p port

Com o exemplo de detalhes de login abaixo, o comando do terminal SSH seria ssh [email protected] -p 24910. Se você não estiver usando autenticação de chave pública, você também será solicitado a senha do SSH após executar o comando de login.

  • Endereço IP: 146.148.59.197
  • Nome de usuário: kinstasite
  • Porto: 24910

Após um login SSH bem sucedido, você deve ver algo como isto na janela do seu Terminal.

Janela do terminal SSH.
Janela do terminal SSH.

Passo 2 – Instalar o Pacote Unzip (Opcional)

Em algumas distribuições Linux, o pacote unzip não é instalado por padrão. Os usuários Kinsta não precisam se preocupar em instalar o pacote unzip porque ele é instalado automaticamente em todos os containers do nosso site. Se você está gerenciando um servidor que não tem o pacote unzip instalado, você pode usar o seguinte comando para instalá-lo – note que as permissões de nível sudo são necessárias.

Ubuntu e Debian

`sudo apt install unzip`

CentOS e Fedora

`sudo yum install unzip`

Passo 3 – Descompacte o arquivo ZIP usando o Terminal

O próximo passo é navegar até o arquivo ZIP e descompactá-lo. Para navegar para a pasta correta, podemos usar o comando cd, como mostrado abaixo.

cd directory

Nós fizemos o upload do nosso arquivo backup.zip para o diretório ~/private, então vamos usar o comando abaixo.

cd ~/private

Observe como nosso prompt do Terminal mostra o diretório ~/private agora.

Navegue até o diretório que contém o seu arquivo ZIP.
Navegue até o diretório que contém o seu arquivo ZIP.

Podemos usar o comando ls para listar os arquivos e pastas no diretório atual. Na captura de tela abaixo, você pode ver o arquivo backup.zip em nosso diretório ~/private.

Listar arquivos no Terminal.
Listar arquivos no Terminal.

Há duas maneiras de descompactar um arquivo ZIP. Você pode descompactá-lo para o diretório atual ou para um diretório diferente.

Para descompactar o arquivo para o diretório atual, use o comando abaixo.

unzip your-file.zip

Para descompactar o arquivo para um diretório diferente, use este comando em seu lugar.

unzip your-file.zip -d directory

Para nosso arquivo backup.zip, queremos descompactá-lo para nossa pasta ~/public, o que pode ser feito com o comando abaixo.

unzip backup.zip -d ~/public

Depois de executar o comando unzip, você deve ver uma série de linhas que começam com “inflar”. Isto indica que o processo de descompactação foi iniciado com sucesso.

Descompacte arquivos no Terminal.
Descompacte arquivos no Terminal.

Após terminar o processo de descompactação, navegue até o diretório de destino com o comando cd, e liste os arquivos com o comando ls para verificar se os arquivos descompactados estão no lugar certo.

Verificar arquivos descompactados.
Verificar arquivos descompactados.

Se você gostaria de remover o arquivo ZIP original após descompactá-lo, você pode usar o comando rm desta forma.

rm /path/to/your-file.zip

Em geral, se você estiver lidando com um arquivo ZIP com mais de 50 MB de tamanho, descompactá-lo no servidor ao invés de fazê-lo localmente no seu computador será normalmente mais rápido. Mas há mais para descompactar arquivos ZIP, pois usar SSH e Terminal é útil para uma série de casos de uso além de restaurar os backups.

Resumo

Ser capaz de descompactar um arquivo ZIP no Terminal usando SSH pode acelerar drasticamente seu fluxo de trabalho – especialmente se você estiver fazendo upload de um grande número de arquivos em massa. Com os comandos SSH listados neste post, você será capaz de rapidamente restaurar backups e mover conteúdo sem esperar por longos uploads de SFTP.