Envie logs e outros conteúdos do seu Terminal diretamente para o Pastebin

 Por Ciro Mota |  12, Julho 2021 |  Tempo de leitura aproximadamente 4 minutos.
 Edições: Revisão textual. Em 26, Fevereiro 2022.

Olá pessoal, como vão? Espero que todos estejam bem.

Em algumas situações nós estamos em um terminal e precisamos salvar algum log para auditar depois, ou algum erro necessita ser enviado para uma equipe de suporte, ou até mesmo poder compartilhar algum pedaço de código (ou todo ele) para algum colega nos dar uma mão, são algumas possibilidades. Mas e como poderíamos fazer isso, lembrando que estamos em um terminal no Linux? Caso seja um PC desktop nós contamos com uma interface gráfica e que nos daria a possibilidade de abrir um navegador, acessar um site de paste (como o Pastebin por exemplo), colar o log lá, copiar a url gerada e por fim repassar essa url. Cansativo não?!

E em um servidor? Lá não tem interface gráfica, aqui talvez fosse necessário enviar para uma pasta na rede, copiar via SSH e etc…

Pois bem, creio que nem todo colega de T.I conhece essa possibilidade mas sem dúvida é uma autêntica mão na roda, onde podemos encurtar todos esses passos acima em uma mera linha de comando. Me acompanhem..

Disclaimer

Amigos, essas são ferramentas que podem ser usadas normalmente em produção, contudo prudência se faz necessário. Evite compartilhar códigos proprietários, emails e senhas, logs críticos ou qualquer dado que julgue sensível.

Pastebinit

O Pastebinit está presente em praticamente todas as distros, se você está em uma distro base Debian ou Ubuntu, podemos usar o pastebinit presente no repositório. Proceda com a instalação padrão em sudo apt install pastebinit e ao final executamos pastebinit -l e conseguimos ver uma lista de servidores suportados:

Lista de servidores suportados pelo Pastebinit

Para enviar qualquer conteúdo para algum servidor desta lista, precisamos somente da linha de comando abaixo:

apt search linux-image | pastebinit -b paste.ubuntu.com

Neste caso fiz uma busca nos repositórios por “linux-image” e lancei diretamente para o “paste.ubuntu.com”. O resultado pode ser obtido aqui neste link. Você pode enviar a saída padrão (stdout) diretamente para um deles e ao final será gerado um link para compartilhamento.

Por padrão a identificação será a partir do conteúdo da variável $USER e você terá que especificar qual servidor enviar. Se desejar automatizar tudo isso é possível desde criar um mini cabeçalho personalizado, formato de saída dos arquivos e o servidor que será utilizado, basta então criar o arquivo .pastebinit.xml no seu diretório /home (sim, com o ponto pois deverá ser oculto) com o seguinte conteúdo:

<pastebinit>
    <pastebin>paste.ubuntu.com</pastebin>
    <author>Ciro Mota</author>
    <format>text</format>
</pastebinit>

Adapte-o para sua necessidade. Feito isso, se fomos executar o mesmo comando acima precisaremos de somente uma parte dele e ficará:

apt search linux-image | pastebinit

Mais alguns detalhes podem ser encontrados no Man da ferramenta.

fpaste

O fpaste é uma solução apenas para os base RHEL, ou seja, CentOS, Fedora e Red Hat. Instale-o através do comando dnf install fpaste.

Sua utilização é extremamente simples, mais simples do que o pastebinit que vimos acima. Utilize o comando abaixo para um compartilhamento simples:

dnf search kernel | fpaste

Neste caso, como minha distro padrão é o Ubuntu, utilizei um Docker Container com uma imagem do Fedora e fiz uma busca nos repositórios pela palavra Kernel. O resultado pode ser visto neste link.

O fpaste suporta algumas flags como por exemplo definir um nome, uma descrição e algo muito legal que é um prazo de expiração do link. Mais detalhes, claro, no Man da ferramenta.

Termbin

A terceira opção mas não menos legal é a termbin e ela depende apenas do Netcat instalado, Netcat que pode ser encontrado em todas as distros por ser um verdadeiro canivete Suíço e com isso pode ser usado também no Windows. Sua sintaxe é extremamente simples:

cat ~/arquivo.txt | nc termbin.com 9999

Mais alguns poucos detalhes sobre ela, de novo, no Man da ferramenta.

E ai, conheciam essas ferramentas? Usa alguma outra? Me deixe saber nos comentários.

Espero que tenha sido útil.
Até a próxima!