9 Comandos SSH indispensáveis para gerenciar sua hospedagem

Comandos SSH para gerenciar hospedagem
A manutenção de um site, bem como a atualização de arquivos e páginas, pode ser feita de diversas maneiras. Grande parte das pessoas, ao se deparar com essa necessidade, opta por usar uma interface amigável, como um gerenciador de arquivos ou um programa de FTP. Pois saiba que estas formas podem não ser as mais eficientes e ágeis para realizar tarefas corriqueiras em seu site. O acesso SSH pode levar sua produtividade para outro nível, quando se domina a ferramenta.

Neste artigo, veremos alguns dos comandos SSH mais usados para a administração de um site. Ao final, você estará apto a navegar pelos diretórios do servidor e criar, editar e mover arquivos e pastas. Como bônus, ainda veremos como realizar um backup dos arquivos do site. Todas essas operações serão realizadas através do terminal de comandos. Continue acompanhando e aprenda!

Antes de começar

Antes de apresentar os comandos SSH propriamente ditos, vamos recapitular alguns conceitos básicos. SSH é o acrônimo de Secure Shell, e este é um protocolo que permite acessar um servidor na internet, desde que você possua as credenciais corretas para tal. Para saber mais sobre o assunto, recomendamos a leitura do artigo “O que é SSH e como usá-lo para acessar sua hospedagem“.

Para realizar os procedimentos propostos no artigo, precisaremos apenas de duas coisas:

  • Login e senha da hospedagem (ou um par de chaves público-privada)
  • Um cliente SSH

Se você usa Linux ou Mac, não há necessidade de instalar nada, pois o terminal de comandos padrão oferece suporte nativo a comandos SSH. Se você usa Windows, precisará instalar um cliente para comandos SSH. Um dos clientes mais populares para Windows é o Putty, mas existem outras opções tão ou mais interessantes, como o terminal do Git for Windows, que eu uso e recomendo.

Com os dados de acesso em mãos, é hora de começar. Abra o terminal e acesse o servidor usando o comando SSH:

$ ssh user@meusite.com.br

Substitua a palavra user pelo seu nome de usuário e o endereço meusite.com.br pelo domínio do seu site ou IP do servidor. Se for o primeiro acesso, um aviso aparecerá na tela, solicitando que você confirme que deseja prosseguir. Basta digitar a palavra yes e teclar Enter para prosseguir.

Em seguida, o sistema vai solicitar a senha de acesso ao servidor. Basta digitá-la e pressionar Enter para enviar a informação. Se tudo der certo, você verá que o ponteiro do terminal será alterado para o seu nome de usuário e o nome do servidor. Será algo como:

user@nome_do_servidor [~]$

No exemplo acima, user é o nome do usuário, nome_do_servidor é o servidor no qual você está conectado, [~] indica a sua localização, sendo que o símbolo ~ representa o diretório do usuário (ex.: /root/usuario/), e o cifrão ($) é o símbolo do prompt. Todos os comandos serão inseridos após o símbolo $.

Se você conseguiu se conectar com sucesso ao servidor, isso significa que estamos com tudo pronto e podemos ir adiante.

Os comandos a seguir se referem ao Shell do tipo Bash, que está presente nas distribuições Linux mais populares em servidores web.

O terminal pode não ser uma ferramenta muito amigável para aqueles que estão acostumados com interfaces gráficas para o gerenciamento de arquivos, como as oferecidas em sistemas operacionais Windows e Mac. Em um terminal, para “enxergar” os arquivos, precisamos inserir alguns comandos, como veremos a seguir.

ls

Este é o comando para listar tudo o que existe no diretório (ls vem de list, que significa listar em inglês). Se você adicionar ao comando o parâmetro -a, poderá incluir no resultado arquivos ocultos (que começam com um ponto). Já a flag -l acrescenta informações como o proprietário do arquivo, o tamanho em bytes e a data em que ele foi modificado pela última vez. Você pode usar as flags agrupadas, como no exemplo abaixo:

$ ls -la

O resultado será algo como:

Comando SSH ls
Parâmetros ou flags são informações extras que podem ser adicionadas ou não a um comando. A inserção de uma flag modifica a ação e/ou a saída exibida no terminal. No exemplo anterior, o parâmetro -l, no comando ls, solicita a exibição de informações adicionais sobre os arquivos. Para ver a diferença, experimente digitar apenas o comando ls, sem nenhum parâmetro.

pwd

Usar este comando é o mesmo que perguntar “onde estou?” para o terminal. PWD vem de Print Working Directory, que, em português, seria algo como imprimir o diretório de trabalho (aquele que você se encontra). Ao usar este comando, o caminho (path) do local onde você está será exibido na tela, como no exemplo abaixo:

Comando SSH pwd

Repare, no exemplo acima, que o caminho para a pasta base do usuário (/home/tshs2016) é substituído pelo til (~) na exibição padrão do terminal (linha superior).

cd

Este comando vem de change directory, que seria mudar diretório, em português. Ele serve justamente para isso, para sair do diretório atual e ir para outro. Para entrar em um diretório, basta escrever o nome do mesmo após o comando. Se você desejar subir um nível, basta usar dois pontos (..) após o comando. Caminhos completos também podem ser usados para alterar diretórios, mesmo que ele não esteja um nível acima ou abaixo de onde você está. Veja alguns exemplos de uso do comando cd:

$ cd .. // Sobre um nível a partir do diretório atual
$ cd home // Entra no diretório home
$ cd /root/user/public_html/site // Entra no diretório /root/user/public_html/site
Se o nome do diretório possuir espaços, você deve digitá-lo entre aspas. Nesse caso, para acessar o diretório Meu Site, você deve usar o comando $ cd "Meu Site".

Copiando e movendo arquivos

Agora que já aprendemos a visualizar e a navegar entre os diretórios e arquivos do servidor, vamos ver comandos SSH úteis para copiar, mover e renomear os arquivos.

cp

A sigla cp vem de copy, que significa copiar, em inglês. Isso é justamente o que esse comando faz. Ele é bastante útil quando se quer fazer uma cópia de um arquivo ou diretório, mantendo intacto o original. Para usá-lo, após o comando devemos informar o nome do arquivo que será copiado e em seguida o nome de sua cópia. Se desejar, você pode criar a cópia e salvá-la em outro diretório. Para isso, basta informar o caminho junto com o nome da cópia. Veja os exemplos:

$ cp arquivo1.txt arquivo2.txt // Cria uma cópia do arquivo1.txt e a salva no mesmo local, sob o nome arquivo2.txt
$ cp arquivo1.txt /home/user/backup/arquivo1.txt // Cria uma cópia com o mesmo nome, mas a salva no diretório backup

mv

Este é o comando usado para mover arquivos e diretórios (mv vem do inglês move). Ao contrário do comando cp, ele remove o arquivo da sua localização original e o move para um novo local, que deve ser indicado por você. O funcionamento parecido com o cp, onde você informa o arquivo de origem e para onde quer movê-lo.

$ mv arquivo1.txt /site/arquivo1.txt // Move o arquivo para dentro da pasta site

Renomear arquivos/diretórios com o comando mv

É interessante notar que o comando mv também pode ser usado para renomear um arquivo ou diretório. Para isso, basta usá-lo alterando apenas o nome do arquivo, sem incluir um diretório, como no exemplo:

$ mv arquivo1.txt arquivo2.txt // Renomeia o arquivo1.txt para arquivo2.txt

Visualizando e editando o conteúdo de arquivos

Através de um terminal de comandos SSH é possível realizar todo tipo de edição em arquivos e diretórios. Na verdade, o terminal é mais poderoso do que as ferramentas de interface gráfica, além de ser mais leve. Assim, é preciso ter cuidado ao editar arquivos e realizar operações com o terminal. Com alguma prática e treinamento, é possível ficar confortável com o terminal e entender que a produtividade pode ser bem maior no dia a dia.

Vamos conhecer agora alguns comandos SSH para a visualização e edição de arquivos através do terminal.

cat

Este comando é usado para a visualização do conteúdo dos arquivos. Você precisa apenas informar o nome do arquivo logo após o comando. Como resultado, o conteúdo do arquivo será exibido no terminal. Por exemplo:

$ cat test.html

O resultado será:

Comando SSH cat

vi

O comando vi vem de visual editor (editor visual) e permite que você edite arquivos diretamente no terminal. Este poderoso editor de textos pode ser intimidador para iniciantes, principalmente porque ele funciona de uma maneira não muito intuitiva.

Para abrir um arquivo com o vi, basta usar o comando:

$ vi arquivo.txt

Ao abrir o arquivo, você entra no modo de navegação, que permite, entre outras coisas, salvar as alterações e localizar trechos de código. Para editar o conteúdo diretamente, é preciso entrar no modo de edição, pressionando a tecla i. Ao final da edição, deve-se sair do modo de edição, pressionando ESC e salvar as alterações usando o comando :w. Para sair do arquivo, digite no terminal :q.

Para ver uma referência dos comandos básicos do vi, acesse esta página.

Fazendo backup, compactando e descompactando arquivos e diretórios

Usar o terminal para realizar tarefas no servidor pode ser bastante ágil e prático para aqueles que estão familiarizados com os comandos SSH. Os comandos que veremos a seguir são muito úteis para gerar backups do site. Eles são usados primariamente para compactar (comprimir) arquivos. Ter um único arquivo comprimido contendo diretórios inteiros facilita muito o seu envio para outro lugar.

zip

Este comando comprime (ou “zipa”) um arquivo ou diretório. Para comprimir um diretório incluindo todos as subpastas, é importante usar a flag -r, que vem informa que o comando deve ser usado recursivamente (até acabarem todos os subdiretórios). Por exemplo:

$ zip -r backup.zip site // Cria o arquivo backup.zip, que contém todos os arquivos/pastas dentro de "site"

Para descompactar um arquivo compactado com o zip, você pode usar o comando unzip. Nesse caso, para descompactar o arquivo criado no exemplo acima, o comando seria:

$ unzip backup.zip

Vale mencionar que o comando unzip não está disponível por padrão em todas as distribuições Linux. Se esse for o caso, basta realizar a instalação do mesmo seguindo o procedimento de instalação de pacotes da distribuição correspondente.

tar

Este comando sozinho apenas agrupa os arquivos, sem comprimi-los. Mas ele é bastante usado no universo Linux, sendo preferido por muitos, por conta de suas opções. Ao adicionar alguns parâmetros ao comando, é possível visualizar o processo de compressão em tempo real. Um uso bastante popular do comanto tar é como no exemplo abaixo:

$ tar -cvzf backup.tar.gz site // Cria o arquivo backup.tar.gz, que contém todos os arquivos/pastas dentro de "site"

No exemplo acima, os parâmetros significam:
-ccreate (cria o arquivo)
-vverbose (exibe no terminal a ação à medida que ocorre)
-zzip (comprime o arquivo usando o método GNU zip)
-ffile (permite definir o nome do arquivo)

Há ainda outro parâmetro bastante utilizado no tar para descompactar arquivos:
-xextract (extrai os diretórios e arquivos do arquivo .tar)

Nesse caso, para descompactar o arquivo que criamos no exemplo acima, o comando poderia ser:

$ tar -xvzf backup.tar.gz // Extrai (descomprime) os arquivos e diretórios existentes em backup.tar.gz

Enviando os backups para outro servidor com comandos SSH

Nos exemplos que acabamos de ver, dos comandos zip e tar, o resultado será um arquivo único, que pode (e deve) ser enviado para outro lugar, caso o seu objetivo seja realizar um backup. Assim, se algum problema ocorrer no servidor em produção, o backup estará seguro em outro lugar.

O transporte de arquivos entre servidores pode ser feito de muitas maneiras. Diretamente pelo terminal, temos os comandos rsync e scp como ótimas opções, mas o detalhamento de como usá-los é assunto para um novo artigo. 😉

Conclusão

Conhecemos, neste artigo, comandos fundamentais para o gerenciamento de um site usando o protocolo SSH. É importante ter em mente, no entanto, que é possível fazer muito mais com o terminal. Para ver a lista com todos os comandos bash, incluindo as flags de cada um, visite o site www.ss64.com/bash/.

Deseja acrescentar um comando que ficou de fora do artigo? Ficou com alguma dúvida? Deixe um comentário e vamos conversar!

Tags:

Por:

Designer, desenvolvedor web, músico — e um dos fundadores do Tudo Sobre Hospedagem de Sites. Desde 2010 vem atuando na área de hospedagem de sites, tendo ajudado centenas de pessoas a encontrarem as melhores soluções para seus projetos online. É um entusiasta do WordPress e acredita que a Internet pode transformar a vida das pessoas através do conhecimento. Desde 2013 compartilha sua experiência sobre hospedagem e criação de sites no TSHS. É responsável pela área de infraestrutura e desenvolvimento do site e autor dos artigos e tutoriais técnicos do blog.

12 Comentários

    • Bill Bordallo
      Cofundador - Tudo Sobre Hospedagem de Sites

      Que bom, Gabriela!
      Obrigado pelo comentário. 🙂

      Responder
  1. Dornelas

    Parabéns pelo post!
    Me ajudou muito.
    Fiquei com uma dúvida de como descompactar os arquivos gerados no zip e no tar.
    O zip talvez possa ser unzip rs.

    Responder
    • Bill Bordallo
      Cofundador - Tudo Sobre Hospedagem de Sites

      Oi, Dornelas,
      Ótima observação! Faltaram estes comandos no post. 🙂

      No caso do tar, para descompactar o arquivo, é só substituir a flag -c (de create) por -x (de extract). Portanto, se você usou o comando tar -czvf arquivo.tar.gz para criar o arquivo, use tar -xzvf arquivo.tar.gz para descompactá-lo.

      No caso do zip, você pensou certo! Basta usar o comando unzip para extrair o conteúdo. Por exemplo: unzip arquivo.zip. Vale mencionar que, ao contrário do tar, que usa o mesmo comando para descompactar o arquivo (apenas alterando uma flag), o unzip é diferente de zip e não vem instalado por padrão em muitas distribuições. Nesse caso, antes de usá-lo, você deve instalá-lo.
      Abraços!

      Responder
  2. Carlos

    Olá, parabéns pelo excelente post. Qual seria o comando para que eu pudesse ver o conteúdo de uma página externa no terminal? Por ex: cat “https://www.google.com”

    Responder
    • Bill Bordallo
      Cofundador - Tudo Sobre Hospedagem de Sites

      Olá, Carlos,
      Você pode obter o conteúdo html de uma página de diferentes formas, usando o terminal.
      Uma delas é o comando curl. Ao rodar, por exemplo, $ curl www.google.com.br o código-fonte da página em questão (HTML) é exibido no terminal. Para ver outras aplicações para o curl, consulte esta página.
      Outra opção é usar o wget. Ao rodar simplesmente $ wget www.google.com.br, é realizado o download do HTML da página e salvo no diretório corrente do terminal. Veja aqui a documentação do wget.
      Abraços!

      Responder
  3. Luis

    boa tarde. preciso do comando que encontre, mostre e apague todos arquivos error_log do servidor. como ficaria?

    Responder
    • Bill Bordallo
      Cofundador - Tudo Sobre Hospedagem de Sites

      Olá, Luis,
      Para encontrar e listar os arquivos no terminal, você pode usar o seguinte comando:

      $ find caminho/pasta/ -type f -iname "error_log"

      Ao rodar o comando acima, ele vai fazer uma busca a partir do diretório especificado (incluindo subdiretórios), procurando apenas por arquivos (-type f) cujo nome seja error_log (-iname "error_log") e exibir o resultado na tela. É possível usar expressões regulares para buscar arquivos. Por exemplo, se quiser buscar por arquivos que terminem em _log, basta alterar a busca para -iname "*_log".

      Após fazer a consulta, se estiver certo de que deseja apagar os arquivos exibidos, acrescente a flag -delete ao final do comando. O comando final, para buscar e apagar, ficaria:

      $ find caminho/pasta/ -type f -iname "error_log" -delete

      Para visualizar os arquivos que estão sendo apagados, basta acrescentar a flag -print ao comando:

      $ find caminho/pasta/ -type f -iname "error_log" -print -delete

      Espero ter ajudado. Qualquer dúvida, é só entrar em contato!
      Abraços.

      Responder

Deixe um comentário

Todos os comentários são moderados. Então, seu comentário não será exibido imediatamente após o envio.
Mas fique tranquilo(a), porque ele será respondido em breve. 😉