Pigz – Compactador eficiente e rápido

Talvez nem todos saibam mas a compactação usando gzip temos uma limitação da ferramenta não conseguir executar com múltiplos processadores. Para contornos essa limitação podemos usar uma ferramenta chama PIGZ, que usando threads consegue utilizar múltiplos processadores.

A instalação depende da sua distribuição, mas utiliziando as mais comuns temos ela nos repositórios. Caso não tenho basta baixar o fonte no site deles.

Manjaro:

Ubuntu:

O uso do pigz se dá assim:

Para teste vamos compactar uma mesma pasta usando as duas ferramentas, gzip e pigz usando compressão máxima (-9)

Usando GZIP

Usando PIGZ

Na comparação a compactação teve o mesmo tamanho final, porém com o uso de CPU muito maior por parte do PIGZ, lembrando que quanto melhor sua máquina, mais recursos, melhor será o desempenho.

É claro que dependendo a quantidade de arquivos e os tamanhos você não notará tanta diferença, mas com grandes quantidades de arquivos é notório o melhor desempenho. Nesse site temos um comparativo bem legal com várias ferramentas de compressão.

Exemplos de uso do comando ping

Segundo o Wikipédia ping é …

Ping ou latência como podemos chamar, é um utilitário que usa o protocolo ICMP para testar a conectividade entre equipamentos. É um comando disponível praticamente em todos os sistemas operacionais. Seu funcionamento consiste no envio de pacotes para o equipamento de destino e na “escuta” das respostas. Se o equipamento de destino estiver ativo, uma “resposta” (o “pong”, uma analogia ao famoso jogo de ping-pong) é devolvida ao computador solicitante. ”

Sabendo dessa teoria agora vamos a alguns exemplos:

Exemplo 1: Aumentar ou diminuir o intervalo de tempo entre os pacotes enviados. O ping abaixo esperará cinco segundos antes de enviar o próximo pacote:

E para diminuir o intervalo de tempo:

Exemplo 2: Verificar se a interface está ativa. Por exemplo:

Quando obtiver um tempo de resposta é por que a interface está comunicando, caso contrário irá exibir alguma mensagem de erro:

Exemplo 3: Envie N pacotes e pare. No Linux e outras espécies Unix, o comando ping não termina até que você pressione Ctrl + C, para enviar um certo número de pacotes usamos o argumento -c. Vamos testar enviando 2 pacotes:

Exemplo 4: ping com áudio, envia um beep a cada ping com sucesso

Exemplo 5: “Inundar” a rede. Dísponivel somente para superusuários, envia cem ou mais pacotes por segundo, imprimindo um ponto por cada pacote enviado e um espaço quando recebido.

Exemplo 6: Encontrar o endereço IP de um domínio. Quando um ping é disparado em um nome domínio, antes do envio dos pacotes o comando escreve a saída padrão entre parênteses, depois do nome de domínio, o IP do mesmo.

Exemplo 7: Mostrar apenas as estatísticas do comando. No final do comando é mostrado estatísticas como quantidade de pacotes transmitidos, recebidos, porcentagem de pacotes perdidos e tempo. Se queremos ver somente as estatísticas sem observar cada linha de pacote enviado podemos utilizar a opção -q (quiet).

Exemplo 8: Modificar o tamanho do pacote. Por padrão o tamanho do pacote do ping fica entre 56 a 100 bytes. Se utiliza o tamanho do pacote 100, verá ‘128 bytes’, isto se deve a que 28 bytes é o tamanho do cabeçalho do ping.

Exemplo 9: Especificar o tempo. O parâmetro -w especifica o tempo limite para terminar o ping. Por exemplo -w 5, o comando ping terminará após os cinco segundos, independentemente quantos pacotes foram enviados e recebidos.

Exemplo 10: Ping online. Existem páginas como Ping.eu que nos permitem realizar um ping de diferentes localizações para nosso servidor.

Exemplo 11: Estatísticas parciais sem sair. Ao invez de apertar Ctrl+C para terminar (SIGQUIT) o comando ping, podemos utilizar Ctrl+I para mostrar estatísticas parciais e continuar o envio de pacotes.

Instalando última versão do Ansible no Ubuntu/Debian

Caso não saiba o que é Ansible, pode dar uma lida nesse post.

A forma mais simples para instalar o Ansible é com o comando abaixo, porém é instalado uma versão mais antiga.

Agora para baixar uma versão mais atualizada basta seguir os passos abaixo:

 

Identificar sistema operacional com ping

O comando ping utiliza o protocolo icmp e é muito útil para alguns testes de rede. O que pouca gente sabe é que durante a resposta do comando ping, uma informação pode nos informar qual o sistema operacional está respondendo. Essa informação é TTL (Time to Live).

Ex:

Podemos ver que nesse exemplo o TTL é 64 que corresponde ao Linux. É bom lembrar que cada vez que um pacote passa por um roteador é reduzido um do valor TTL. Caso a resposta seja 64, significa que o pacote veio de um Linux e passou por 2 roteadores.

Unix = 255
Linux = 64
Windows = 128

Convertendo arquivos DOS ^M com Vim

Quem nunca passou pela situação de executar um script e o mesmo apresentar erro. Normal, mas algumas vezes o erro ocorre pela formatação, principalmente se foi escrito ou salvo em um Windows. Ocorre de no final de cada linha ele acrescentar um ^M, o que não o Linux não consegue interpretar.

Existem algumas formas de corrigir esse problema, a mais conhecida é usando o aplicativo dos2unix.

Mas o quero apresentar hoje é usando o poderoso Vim. Basta estando dentro do arquivo digitar o comando abaixo:

Simples e rápido, caso por algum motivo queira fazer o processo contrário, basta executar:
Comando fuser – Quem mexeu no meu arquivo

O fuser é um programa que permite que saibamos qual processo está utilizando determinado arquivo, socket (portas) e sistema de arquivos especificado. Aprender sua manipulação é essencial para poder administrar um servidor para saber o que está acontecendo principalmente nas conexões. É um comando extremamente flexível, vamos ver suas opções e seu uso.

Diretiva Descrição Exemplo
-a, –all Mostra todos os arquivos, inclusive os que estão sem uso # fuser -a *
-k, –kill Desativa/Mata os processos que estão utilizando determinado arquivo # fuser -k /home/zonebin
-i, –interactive Pede confirmação sempre que for matar um processo utilizando um arquivo # fuser -ik /home/zonebin
-m, –mount Especifica um sistema de arquivos para descobrir qual processo está sendo utilizado # fuser -m /dev/sda1
-s, –silent Realiza as operações indicadas silenciosamente, não use a opção -a, -u, -v # fuser -ks /home
-u, –user Mostra o nome de usuário que iniciou o processo que está utilizando o arquivo # fuser -u /var/log/messages
-4, –ipv4 Mostra processos de IPV4 somente # fuser -4 ssh/tcp -6,
-ipv6 Mostra somente processos de sockets IPV6 # fuser -6 25/tcp

Tipos de acesso:
c  Diretório atual
e  Arquivo executável rodando
f  Arquivo aberto (omitido no modo de display padrão)
F  arquivo aberto para escrita (omitido no modo de display padrão)
r  Diretório root
m  Arquivo mapeado ou biblioteca compartilhada

Exemplos:
Mostrar os processos em execução no diretório atual:

Verificando se está sendo usado socket TCP ou UDP, como a porta 22 (SSH):
Para mais informações:
Gerenciando serviços com SystemD

Com SystemD é possível gerenciar o sistema e serviços no seu Linux. Ele usa o Control Groups (CGroups), cada serviço iniciado pelo systemd roda dentro de um cgroup separado, fazendo com que se tenha garantia que cada processo iniciado por serviço seja encerrado corretamente.

Para listar todos os serviços em execução:

Para ver o status de um serviço:
Para ativar um serviço na inicialização:
Para retirar um serviço da inicialização:
Para listar units sendo executadas:
Para listar units que falharam:
Listar os serviços instalados:
Reiniciar o sistema:
Desliga e encerra o sistema:
Suspender o sistema:
Colocar o sistema em modo de hibernação:
Colocar o sistema em modo de suspensão: