Como tmux ajuda você a gerenciar seu servidor Cloudways via SSH
Publicados: 2020-03-06
Este artigo complementa e estende um vídeo que criei sobre o uso de SSH e tmux para gerenciar meus servidores Cloudways. No vídeo, você pode me assistir usando tmux para gerenciar conexões SSH para vários servidores Cloudways e usar a ferramenta de linha de comando htop para analisar a carga do servidor.
Você pode assistir ao vídeo completo aqui:
Como há muito mais nesta conversa do que apenas o que abordei no vídeo, eu queria escrever este artigo complementar e dar mais informações sobre por que estou usando o tmux e porque confio no SSH para administração do servidor.
Para lhe dar um pouco de conhecimento, não sou administrador de servidor por formação - nem mesmo um desenvolvedor web treinado. Tudo o que faço é autodidata. Para mim, aprender fazendo é minha abordagem favorita para adquirir habilidades ou enfrentar os desafios que estou enfrentando. Não sou mais amigo da educação formal (parei de fazer um mestrado em Segurança de TI) e, em vez disso, acredito em me envolver com a tecnologia para entender como ela funciona.
Lembre-se dessa abordagem ao assistir ao vídeo e ler este artigo. Como você verá, dividi o artigo em duas seções. Cada um pode ser um artigo muito longo ou provavelmente vários artigos por conta própria, mas achei que eles combinam muito bem neste contexto.
- Gerenciando seu servidor via SSH
- Por que você deve usar a linha de comando?
- Caso de uso: Depurando a carga do servidor usando htop
- Caso de uso: usando WP-CLI em servidores Cloudways
- Por que eu recomendei o tmux?
Gerenciando seu servidor via SSH
Uma das vantagens de usar Cloudways para hospedagem é que você tem acesso de linha de comando aos seus servidores e aplicativos. Embora não seja acesso root, você pode fazer muitas coisas na linha de comando.
Do meu ponto de vista, é razoável que eu não tenha acesso root aos meus servidores Cloudways. Imagine como seria a manutenção de 20k servidores se cada administrador de servidor instalasse suas próprias ferramentas e pacotes. Essa é uma façanha impossível de alcançar. Com isso dito, Cloudways nos dá acesso ao WP-CLI e muitas outras ferramentas padrão. E isso é bastante para manter seus servidores e se manter informado sobre o que eles estão fazendo.
Demorei um pouco para entender os benefícios de gerenciar meus servidores via SSH, mas agora não vejo outra maneira de lidar com esse assunto. Meus principais motivos para usar a linha de comando são:
- Não preciso esperar o carregamento de um aplicativo da web para ver o que desejo.
- O login é gerenciado por meio de chaves SSH, portanto, não preciso inserir minha senha desnecessariamente.
- Posso manter as sessões SSH em execução e não preciso me preocupar em fazer login e logout.
- Eu tenho acesso ao WP-CLI e posso fazer coisas que não posso fazer no painel normal de administração do WP.
- Posso automatizar a execução de tarefas usando cron jobs e scripts.
- Não preciso afastar minhas mãos do teclado para usar o mouse e posso mantê-las relaxadas.
Observe que, como pré-requisitos, você deve ter algum tipo de cliente SSH instalado. Se você estiver no Linux ou Mac, pode simplesmente usar os aplicativos Terminal pré-instalados. Se você for um usuário do Windows como eu, pode instalar o PuTTY ou usar o Bash que vem com o subsistema do Windows para Linux (que é o que eu prefiro).
Se você não quiser instalar nenhum software adicional, também pode abrir um terminal SSH no Console do Cloudways, mas essa não é uma solução que eu recomendaria para o uso diário. Como você verá, a beleza de usar uma interface de linha de comando é não ter que fazer login em um aplicativo da web como o Cloudways Console.
Por que você deve usar a linha de comando?
Usar a linha de comando pareceu muito intimidante no início. Isso é verdade tanto para a administração do servidor quanto para o uso da linha de comando em meu PC ou Mac local. A maior parte do meu conhecimento sobre linha de comando vem de tutoriais que li na Internet ou de um amigo meu que trabalha na Cisco. É tudo aprender fazendo.
Especialmente ao configurar um servidor ou serviço como um servidor web ou cache do lado do servidor, é fácil quebrar as coisas. Não saber o que estava fazendo e não ter nenhuma experiência com o uso de ferramentas de linha de comando não necessariamente inspirava confiança em mim para tentar gerenciar meus servidores via SSH.
Por fim, peguei a ressaca e descobri os benefícios de usar a linha de comando seguindo três regras:
- Sempre dê um passo de cada vez e tente entender exatamente o que você está fazendo nesta etapa.
- Sempre tenha um ponto de restauração ou backup para o caso de quebrar alguma coisa.
- Sempre teste em um ambiente seguro e nunca execute uma ferramenta de linha de comando em um site ao vivo pela primeira vez.
Com essas regras, eu sabia que nada poderia realmente dar errado. Eu criei uma versão de teste do meu site ao vivo na Cloudways usando a funcionalidade “ Clone ” e apenas segui o tutorial de login via SSH. Uma vez conectado, comecei a brincar com o WP-CLI e outras ferramentas simples de gerenciamento de servidor, como o htop.
Se você seguir uma abordagem semelhante, deverá estar em uma boa posição para aprender a usar a linha de comando com segurança. Ajuda ter formação em desenvolvimento ou TI, mas não acho que seja necessário. Simplesmente pense na linha de comando como uma forma de interagir com seu computador, assim como você faz com o mouse na área de trabalho. Especialmente com WP-CLI , é fácil dar os primeiros passos na linha de comando e ver os resultados em seu painel de administração WP.
Caso de uso: Depurando a carga do servidor usando htop
No vídeo, você verá que estou usando a ferramenta htop para analisar o uso de recursos do servidor. htop é uma ferramenta padrão que fornece informações sobre o que está acontecendo atualmente em seu servidor em tempo real. Considerando que os dados de monitoramento da Cloudways Platform às vezes apresentam pequenos atrasos, é extremamente útil aprender mais sobre como usar o htop .
Sempre que o bot Cloudways me notifica de que o uso de CPU ou RAM atinge o pico, eu faço o login no respectivo servidor via SSH e executo o htop. Em segundos, posso identificar o processo e o aplicativo que consomem os recursos. O que eu levaria um ou dois minutos usando a plataforma da web Cloudways é feito em 10-20s.

É assim que o htop se parece na prática:

O processo de depuração, então, é identificar o aplicativo que ocupa uma quantidade incomum de recursos do servidor via htop e examinar esse aplicativo com mais detalhes. Se você vir um processo PHP desse aplicativo ocupando a CPU ou RAM, você sabe que provavelmente é algo relacionado a um plugin WP ou ao seu tema. Geralmente, os processos agendados por meio do WP-Cron se acumulam e agora são executados de uma vez, sobrecarregando o servidor.
Se você vir um processo MySQL ou MariaDB ocupando os recursos do servidor, sabe que não precisa examinar os plug-ins ou o tema, mas sim o banco de dados. Tenho visto bancos de dados perderem seus índices e, portanto, fazer com que as consultas SQL sejam executadas extremamente lentas. Pode levar muito tempo para você identificar as origens do problema se você não souber se é o PHP ou o MySQL que está causando os problemas.
Como você pode imaginar, esta é apenas a ponta do iceberg do que o htop pode fazer. Aqui está uma lista de exemplos práticos de htop que levam meu exemplo ao próximo nível.
Caso de uso: usando WP-CLI em servidores Cloudways
Saber como usar o WP-CLI pode ser uma verdadeira virada de jogo para sua abordagem de desenvolvimento diária. Instalando um vanilla WP sem mover o mouse? Sem problemas. Excluindo todos os transientes com a instalação de um plugin adicional? Fácil. Analisando quais ganchos retardam mais o tempo de carregamento do seu site? Você também pode fazer isso com o WP-CLI.
É realmente incrível que o Cloudways nos dê acesso ao WP-CLI pela linha de comando. Você pode construir facilmente ferramentas que instalam sua pilha de plug-ins padrão do WordPress e seu tema. Ou você pode usar o WP-CLI para baixar um backup do banco de dados do seu site em segundos ou minutos (bem, isso depende do tamanho do seu banco de dados).
Aqui está o problema: você deve usar a linha de comando para acessar o WP-CLI. E, portanto, você tem que fazer login em seu servidor via SSH para executar comandos WP-CLI em seus sites hospedados em Cloudways.
Se não houver outro motivo para você se familiarizar com a linha de comando e começar a usar o SSH para gerenciar seus servidores, o WP-CLI deve ser esse. Deixe-me dar apenas três exemplos que valem a pena experimentar:
1. Otimizando e reparando seu banco de dados
Como não temos PhpMyAdmin no Cloudways, ter a opção de otimizar e reparar seu banco de dados WordPress usando WP-CLI é útil. Usando wp db optimize e wp db repair , você pode acelerar seu banco de dados e estabilizar seus processos.
2. Criando um tema filho em segundos
Sim, você poderia criar um tema filho criando e carregando manualmente um novo diretório com os respectivos style.css e functions.php em wp-content / themes - mas por que se preocupar se você pode executar um comando simples que trata de tudo para você?
Chega de olhar o Codex para verificar se as especificações foram alteradas, chega de logins SFTP e transferências de arquivos. Basta executar o seguinte comando na linha de comando e seu tema filho está pronto para ser usado:
wp scaffold child-theme SLUG –parent_theme = SLUG –theme_name = TITLE –author = FULL-NAME –author_uri = URI –theme_uri = URI –activate –force
Observe que este comando ativará o tema filho por padrão. Se você não quiser fazer isso, omita “–activate –force” no final do comando.
3. Crie conteúdo fictício para fins de desenvolvimento
Todos os desenvolvedores precisam de dados para trabalhar durante as fases de desenvolvimento. E se você não tivesse que criar e duplicar manualmente postagens e páginas no painel de administração do WP? E se o WP-CLI pudesse criar qualquer quantidade de dados fictícios para você com um comando simples?
Executando wp post generate –count = 10 você pode gerar dez posts de demonstração em segundos. A mesma funcionalidade funciona para a criação de páginas, dados fictícios do WooCommerce e até permite adicionar conteúdo lorem ipsum às postagens.
Simplesmente usando curl http://loripsum.net/api/4 | wp post generate –post_content –count = 10 criará 10 posts, cada um com quatro parágrafos de texto Lorem Ipsum.
Por que eu recomendei o tmux?
Espero que os exemplos que dei acima sejam suficientes para deixá-lo animado sobre a tentativa de SSH para manter seus servidores Cloudways. Deixe-me levar este artigo um pouco mais adiante e falar sobre por que estou usando o tmux para gerenciar minhas sessões SSH.
Resumindo, o tmux permite que você gerencie várias sessões de terminal de uma vez. Ou seja, quando você faz algo no terminal enquanto está em uma sessão do tmux, o tmux manterá o controle do que você está fazendo. Mesmo se você acidentalmente fechar o terminal, sua sessão não será perdida. Você pode simplesmente voltar de onde parou com um comando e continuar trabalhando.
tmux também permite que você faça scripts de sessões. Por exemplo, se você tende a executar os mesmos comandos para configurar ambientes de desenvolvimento repetidamente, pode automatizar esses comandos usando o tmux.
Para ser franco, não tenho certeza se algum dia irei aprender tudo o que o tmux tem a oferecer - simplesmente porque é muito. É semelhante ao Google Spreadsheets ou ao MS Excel - todos nós sabemos como essas ferramentas são poderosas, mas usam possivelmente 5% de suas funções diariamente. No entanto, eu sei o suficiente para usar o tmux no meu desenvolvimento diário de WordPress .
Como você pode ver no vídeo, eu uso o tmux para acompanhar minhas sessões SSH. Isso me salva de fazer login em meus servidores Cloudways repetidamente. Acabei de me reconectar à sessão tmux chamada “Cloudways” e continuar trabalhando em meus servidores. Nenhuma mágica envolvida, mas mesmo esse pequeno ajuste me economiza tempo todos os dias. Eu faço o mesmo para meu Raspberry Pi particular em casa (eu sou um nerd inteligente em meu tempo livre).
tmux é legal porque permite que você economize tempo, se torne mais produtivo e reduza os movimentos das mãos ao longo do dia. Se você é como eu, fica fácil sentir dor no pulso depois de longos dias no PC. Mesmo com um mouse ergonômico, ele não iria embora para mim. O que funcionou, porém, foi reduzir os movimentos que eu fazia com as mãos.
Mudar a mão direita do teclado para o mouse de vez em quando sempre parecia uma interrupção no fluxo. Tive que pensar onde colocar a mão direita, houve uma leve tensão no pulso e saí do fluxo da escrita. Com o tmux, você pode atingir uma produtividade quase sem mouse, uma vez que você pegue o jeito.
Eu adoraria mergulhar mais fundo no tmux, mas isso está fora do escopo deste artigo. Em vez disso, darei a você alguns artigos que o ajudarão a começar com o tmux ou a melhorar suas habilidades: Introdução ao tmux pelo Linuxize, Benefícios do uso do tmux por Keegan Lowenstein e Um guia minimalista para o uso do tmux por Peter Jang.
