Tmux o melhor solução multi sessão no Linux.

Tmux sessão
Tmux sessão

As principais distribuições Linux tem como solução pra multi sessão o Screen, porem iremos apresentar o Tmux, um aplicativo com características muito superiores.

Tmux é um multiplexador de terminal, o que significa que você é capaz de ter um processo em execução, desconectar do sistema e reconectar posteriormente e de um computador diferente para que possa continuar trabalhando nesse processo. Uma maneira fácil de demonstrar isso é usar SSH para um sistema remoto, iniciar tmux e, a partir dele, iniciar um comando ping para um sistema remoto, desconectar tmux, retomar tmux e você verá que o ping ainda está funcionando. Alguns dos casos de uso comuns para isso são:

Se você tiver um processo de longa duração, como a atualização de um aplicativo, e não quiser deixar a sessão ssh em execução o tempo todo ou está preocupado com a possibilidade de sua conexão de rede cair.


Além disso, se você tiver várias sessões em execução, poderá usar rótulos para as diferentes sessões.


Se quiser que outra pessoa veja o que você está fazendo, você pode iniciar uma sessão tmux e, em seguida, fazer com que essa outra pessoa faça SSH em seu sistema e conecte-se a essa sessão tmux.

Instalação

Na versão 8 do RHEL ou AlmaLinux, foi tomada a decisão de descontinuar screen e usar em seu lugar o tmux como padrão. No CentOS 7 , voc deverá instalar manualmente o Tmux através do comando abaixo :

Iremos verificar se o tmux está disponível no repositório.

[root@srv030 afrare]# yum search tmux


Loaded plugins: fastestmirror, langpacks


Loading mirror speeds from cached hostfile

base: mirror-centos-jpa.hostdime.com.br

centos-sclo-rh: mirror-centos-jpa.hostdime.com.br

centos-sclo-sclo: mirror-centos-jpa.hostdime.com.br

epel: ord.mirror.rackspace.com

extras: mirror-centos-jpa.hostdime.com.br

remi-php71: mirror.pit.teraswitch.com

remi-safe: mirror.pit.teraswitch.com

rpmfusion-free-updates: mirror.math.princeton.edu

updates: mirror.turbozoneinternet.net.br


================================================ N/S matched: tmux =================================================


tmux-top.x86_64 : Monitoring information for your tmux status line.

tmux-top-devel.x86_64 : Monitoring information for your tmux status line.


tmux.x86_64 : A terminal multiplexer


xpanes.noarch : Awesome tmux-based terminal divider

Name and summary matches only, use “search all” for everything.

Verificamos que o tmux está disponível e iremos agora instalar propriamente o pacote.

yum install tmux
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 27 kB 00:00:00

base: mirror-centos-jpa.hostdime.com.br

centos-sclo-rh: mirror-centos-jpa.hostdime.com.br

centos-sclo-sclo: mirror-centos-jpa.hostdime.com.br

epel: ord.mirror.rackspace.com

extras: mirror-centos-jpa.hostdime.com.br

remi-php71: mirror.pit.teraswitch.com

remi-safe: mirror.pit.teraswitch.com

rpmfusion-free-updates: mirror.math.princeton.edu

updates: mirror.turbozoneinternet.net.br


ajenti | 2.5 kB 00:00:00
base | 3.6 kB 00:00:00


centos-sclo-rh | 3.0 kB 00:00:00

centos-sclo-sclo | 3.0 kB 00:00:00

cheese | 3.5 kB 00:00:00

epel | 4.7 kB 00:00:00

extras | 2.9 kB 00:00:00

remi-php71 | 3.0 kB 00:00:00

remi-safe | 3.0 kB 00:00:00

rpmfusion-free-updates | 3.7 kB 00:00:00

updates | 2.9 kB 00:00:00

z-push | 3.0 kB 00:00:00

(1/7): epel/x86_64/updateinfo | 1.0 MB 00:00:01

(2/7): extras/7/x86_64/primary_db | 236 kB 00:00:02

(3/7): remi-php71/primary_db | 246 kB 00:00:04

(4/7): rpmfusion-free-updates/x86_64/primary_db | 251 kB 00:00:04

(5/7): epel/x86_64/primary_db | 6.9 MB 00:00:07

(6/7): remi-safe/primary_db | 1.9 MB 00:00:10

(7/7): updates/7/x86_64/primary_db | 8.0 MB 00:00:18

Resolving Dependencies

–> Running transaction check

—> Package tmux.x86_64 0:1.8-4.el7 will be installed

–> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================

Package Arch Version Repository Size

Installing:
tmux x86_64 1.8-4.el7 base 243 k

Transaction Summary

Install 1 Package

Total download size: 243 k

Installed size: 558 k

Is this ok [y/d/N]: y

Downloading packages:

tmux-1.8-4.el7.x86_64.rpm | 243 kB 00:00:05

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

Installing : tmux-1.8-4.el7.x86_64 1/1

Verifying : tmux-1.8-4.el7.x86_64 1/1

Installed:

tmux.x86_64 0:1.8-4.el7

Complete!

Usando Prefixos para Controlar Tmux

Tmux é baseado em comandos que performam tarefas específicas. Porém, para executar estes comandos, primeiro é preciso usar um prefixo. O prefixo informa ao Tmux que um comando será executado. Por padrão, o prefixo é CTRL+B.

Então o caminho certo para estruturar um comando Tmux é:

<prefix> + Command.

Ou seja, temos que pressionar as teclas CTRL + B e depois o comando. Por exemplo, para criar uma nova sessão, o comando seria C. Portanto, para criar uma nova sessão, precisamos pressionar CTRL + B e próximo C – CTRL + B, C.

Alguns Comandos Para Ajudar

Outro recurso fantástico do Tmux é que nós podemos “salvar” uma sessão específica. Por exemplo, se nós estamos usando htop e usamos o comando detach quando rodarmos o Tmux novamente, descobriremos que o processo ainda funciona. Isto é muito útil para performar comandos que levam mais tempo para rodar, como backups.

Então, vamos começar uma nova sessão digitando estes comandos na linha de comando:

tmux new

Nesta nova sessão, vamos rodar htop. Htop é uma ferramenta para monitorar os recursos do sistema.

Então, nós usamos o comando detach. Então, primeiro inserimos apertando CTRL+B e em seguida, o comando D. Vamos ver que teremos a próxima mensagem no terminal.

Agora precisamos voltar para nossa sessão “attach”. Para fazer isto, executamos o seguinte comando no terminal:

tmux attach -t [session_name]

Já que não temos um nome para a sessão, usaremos o valor 0. O comando será assim:

tmux attach -t 0

E voltaremos para nossa sessão anterior.

É possível fazer várias sessões com o comando C. Para navegar entre elas então vamos usar o número identificador. Por exemplo, a primeira sessão que criamos do terminal regular seria 0. Se nós criarmos outra sessão ela corresponderá ao número 1.

CTRL+B, 1

Nós podemos ver a sessão atual na barra verde na parte inferior da janela.

Podemos ver quantas sessões Tmux estão abertas com o seguinte comando:

tmux ls

Gerenciando Painéis

Vamos aprender como manipular painéis de terminais. Podemos dividir a janela horizontalmente, com o comando <prefix>, “

Ele teria que ser – CTRL+B, “.

E para fazer o mesmo, só que verticalmente – CTRL+B, %.

Para alternar entre painéis, podemos usar o comando  – CTRL+B, arrow key.

E então podemos navegar por cada um dos painéis. Se quer fechar somente uma delas, pressione – CTRL+D.

Lista de Comandos Tmux

Finalmente, vamos compartilhar um arquivo para você usar como referência:

Sessões

Começar uma nova sessãotmux
Começar uma nova sessão com um nometmux new -s [name]
Começar uma sessão anexadatmux attach #
Se a sessão tmux tiver nometmux attach -t [name]
Listar todas sessões tmuxtmux ls
Sair da utilidadeexit

Lidar com Janela

Nova Janela<prefix>+c
Próxima Janela<prefix>+n
Listar todas as janelas<prefix>+w
Renomear uma janela<prefix>+,

Lidar com Painéis

Dividir painel na vertical<prefix>+%
Dividir painel na horizontal<prefix>+“
Eliminar o painel<prefix>+x
Mostrar número do painel<prefix>+q
Alternar entre painéis<prefix>+arrow key

Conclusão

Como vimos, o Tmux é uma ferramenta importante que ajuda a usar o seu terminal de uma forma mais eficiente de abrir várias sessões.

O gerenciamento desta utilidade é feito através de comandos. Nós aprendemos os comandos mais básicos e úteis para o seu dia a dia de trabalho.

Abaixo mais alguns artigos interessantes sobre administração de um servidor Linux.

DNS ATAQUE

Ataque DDOS