Pressione enter para ver os resultados ou esc para cancelar.

Upgrade no ambiente de desenvolvimento LINUX: Gestão de recursos – Espaço em HD

Esta é a segunda parte da nossa série sobre upgrade no ambiente de desenvolvimento LINUX, você pode conferir o primeiro artigo antes de continuar com essa leitura se quiser, lá eu falei um pouco sobre a produtividade. Neste artigo, vou mostrar algumas dicas de como você pode monitorar e gerenciar o espaço em HD da sua máquina!

 

Pré requisitos:

  • Utilizar linux
  • Ter vontade de aprender mais sobre shell script e seu sistema operacional

E um aviso importante:

DISCLAIMER

Upgrade no ambiente de desenvolvimento LINUX1Fonte: Wikimedia

 

Neste post estou ensinando alguns truques rápidos e é importante que você entenda e saiba o que está fazendo em sua máquina antes de apertar o enter. Sinalizei todos os riscos que conheço, mas a máquina é sua e não assumo responsabilidade sob quaisquer danos causados à sua máquina ou dados.

Tenha critério e não tenha muito medo de ser feliz porque é fazendo cagada que se aduba a vida, mas não mande seu adubo pra mim que a terra aqui já está bem fértil xD. Boa sorte! Agora sem mais delongas…


Analisando seu espaço em disco

Para avaliar como está seu espaço em disco você pode utilizar o comando df com alguns parâmetros:

df -t ext4 -B G

Esse comando lista os dispositivos com o sistema de arquivos do tipo ext4 e mostra seu espaço em Gigas.

Fonte: Produzida pelo autor

 

É importante notar se você tiver uma partição /root pequena como é nesse caso, você pode rapidamente ficar sem espaço em disco. 

Vale a pena dizer que existem diversas aplicações de análise de disco, inclusive nativas das principais distribuições LINUX.

Algumas ferramentas de análise que podem te interessar:

https://www.ubuntupit.com/best-disk-analyzer-tools-for-linux-system/

Erro de pouco espaço em /root ou em memória /temp

Dependendo de como está seu disco você pode acabar recebendo um aviso desses:

Fonte: Produzida pelo autor


E enquanto você não resolver esse problema não vai conseguir fazer muita coisa, já que sua máquina precisa escrever registros no disco o tempo todo, com logs, atualizações e as próprias alterações de arquivo que você precisa fazer em seu trabalho.
 

Para lidar com isso, segue uma lista de dicas que podem te ajudar:

Remover kernels antigos

Fonte: Produzida pelo autor

 

No fedora você pode rodar rpm -qa kernel\* |sort -V para ver quais kernels estão instalados na máquina. Nesse caso tenho 3 kernels, o 5.9.13, 5.9.14 e 5.9.16

 

Para manter apenas os últimos 2 posso utilizar o comando:

dnf remove $(dnf repoquery --installonly --latest-limit=-2 -q)

 

desenvolvimento LINUX.Fonte: Produzida pelo autor
Fonte: Produzida pelo autor
desenvolvimento LINUX.Fonte: Produzida pelo autor

 

Já no ubuntu você pode utilizar o comando: sudo apt-get autoremove --purge que irá remover todos os kernels não utilizados.

 

OBS: Os Kernels são leves e é bom você ter alguns de reserva caso tenha problemas com o kernel que esteja utilizando. Faça isso apenas se realmente precisar de espaço.

 

Pacotes

DNF

 sudo dnf clean cache all

desenvolvimento LINUX.Fonte: Produzida pelo autor

 

APT

No apt:

Limpar cache:

sudo apt-get clean

 

Limpar pacotes não utilizados:

sudo apt-get autoclean

 

Limpar pacotes órfãos:

sudo apt-get –purge autoremove

 

Atualizar pacotes

Utilize o gerenciador de pacotes para atualizar seus pacotes sempre que possível, isso também irá liberar espaço pois os pacotes no linux tendem a reduzir de tamanho conforme são otimizados em suas atualizações.

sudo apt-get update
sudo dnf update

 

Remover versões antigas no SNAP

O Snap também é um “gerenciador de pacotes” e pode ser que você já tenha usado ele para instalar uma ou mais aplicações. Ele possui um histórico de versões instaladas que às vezes pode ocupar um tamanho considerável no seu HD.

Para remover versões obsoletas, você deve fazer um script. Crie um arquivo chamado remove-old-snaps e insira o código abaixo dentro dele:

#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu

LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done

 

Agora dê permissão de execução para poder rodar o script, e rode com o super usuário:
chmod +x remove-old-snaps
sudo ./remove-old-snaps

 

Pronto!

Agora você pode aproveitar que está aqui e orientar seu snap a manter apenas as 2 últimas versões. Dessa forma, se precisar fazer rollback você ainda tem a última.


Para manter apenas as 2 últimas versões de cada pacote:

sudo snap set system refresh.retain=2

 

Logs

Limitar logs do journalctl com –vacuum-time ou –vacuum-size

Os logs de sua máquina são outra fonte de consumo de espaço em disco. Normalmente em servers os logs são um pouco mais críticos, mas na sua máquina muitas vezes você não vai precisar deles. Dificilmente irá precisar de logs antigos, então pode ser uma boa reduzir o tamanho de log. Defina um tamanho que seja grande o suficiente para você e manda brasa!

Fonte: Produzida pelo autor
desenvolvimento LINUX.Fonte: Produzida pelo autor

Um comando que pode ser útil é o ls -ls --block-size=1M /var/log

 

Esse comando irá listar dentro da sua pasta de logs (/var/log) todos os arquivos com seu tamanho em MBs.

desenvolvimento LINUX.Fonte: Produzida pelo autor

 

Como é possível observar, não tem nenhum grande arquivo de log, mas pode ser diferente no seu caso, e os arquivos com datas passadas são logs antigos, que você pode deletar se não tiver interesse em manter. Tente observar principalmente logs de serviços que utiliza bastante ou servidores de aplicação como apache/nginx, que tendem a acumular mais logs.

 

Docker

docker system prune

Se você trabalha com docker pode fazer uso desse comando que tende a liberar bastante espaço no HD. Ele irá remover todos containers não utilizados, networks, imagens e volumes.

docker system prune

 

Se você ainda não estiver satisfeito, pode passar a option -a, ou -all. Isso fará com que o docker também remova containers que estão em estado de stop e todas as imagens não utilizadas.

docker system prune -a

 

Cuidado para não remover containers/imagens que você sabe que utilizará em breve, principalmente se forem imagens grandes, pois precisará baixar tudo novamente. Utilize esse comando quando quiser fazer uma limpa geral ou quando tiver certeza que não terá problemas para repor seus containers/imagens.

Se você precisar escolher entre containers/imagens você pode utilizar comandos especificando quais deseja remover, a documentação do docker pode te ajudar com isso.

 

Até mais

Com essas dicas para gerenciar seu espaço em disco, espero que você tenha conseguido liberar espaço suficiente para trabalhar em sua máquina, na próxima parte irei dar algumas dicas sobre como gerenciar a memória.

 

Referências

YUM/DNF Remove Old Kernels on Fedora/CentOS/RHEL – If Not True Then False

Essential Guide: 5 Simple Ways To Free Up Space on Ubuntu

Freeing disk space on your Linux server

How to clear journalctl – Unix & Linux Stack Exchange

How To Remove Old Snap Versions To Free Up Disk Space

What command can I use to clear the ‘yum’ cache, on Fedora 23 system? – Unix & Linux Stack Exchange

docker system prune

How to List Your Computer’s Devices From the Linux Terminal