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 de um diretório

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. Ao usá-los, o resultado será um único arquivo, comprimido, o que facilita 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"

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)

Em ambos os comandos (tar ou zip), o resultado será um arquivo único, que pode (e deve) ser enviado para outro lugar. Assim, se algum problema ocorrer no servidor, o backup estará seguro em outro lugar. Este transporte pode ser feito de muitas maneiras. Diretamente pelo terminal, temos os comandos rsync e scp como boas 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!

Por:

Designer, desenvolvedor web e um dos fundadores do Tudo sobre Hospedagem de Sites. Entusiasta do WordPress e apaixonado por tecnologia em geral. Acredita que a internet está ajudando a tornar o mundo um lugar melhor de se viver. =)

Deixe um comentário