Armazenamento e Quota

Cada conta pode armazenar informações de uma forma similar a um disco de computador. Este armazenamento está disponível o tempo todo em praticamente todas as máquinas do departamento mediante acesso do usuário. Existem servidores responsáveis apenas pelo armazenamento das informações dos usuários e cada vez que um usuário faz qualquer interação com o seu “disco”, estes servidores são contatados para obter arquivos do “disco” ou fazer alterações. Para transferir arquivos de dentro para fora ou vice-versa, copie via SSH.

Na prática, isso significa que todos os computadores são sincronizados. Se você entrar mais de uma vez na mesma conta em computadores diferentes do laboratório, eles compartilharão todos os arquivos colocados no “disco”. Isso pode ser a fonte de conflitos: Se você tentar rodar um navegador por exemplo em uma máquina e depois tentar rodar o navegador novamente em outra máquina, você receberá um aviso de que já existe uma instância deste navegador rodando.

Cada usuário possui um limite de armazenamento de arquivos. Este limite é chamado de quota, e é gerenciado por um programa também chamado quota. A quota básica é de:

Isso significa que cada usuário possui, se bem gerenciado, 4GB disponíveis para utilização de propósito geral. É responsabilidade de cada usuário gerenciar a sua própria quota, e o descuido pode levar a impossibilidade de receber e-mails e a impossibilidade de utilizar os computadores do laboratório de um modo geral. Os seus diretórios pessoais são mapeados para as seguintes quotas:

Diretório

Propósito

Quota

/home/{grupo}/{usuário}

Arquivos importantes

/home

/home/html/inf/{usuario}

Página web pessoal

/home

/nobackup/{grupo}/usuário

Não importante e que pode ser criado, baixado de novo

/nobackup

Dica

/home/{grupo}/{usuário} é o diretório para onde você vai quando faz cd. Use o comando pwd para descobrir o diretório onde você está. Exemplo:

$ cd
$ pwd
/home/bcc/usr99

/home/bcc/usr99 é o diretório de um usuário que é aluno de curso de Bacharelado em Ciência da Computação que fica no grupo bcc e tem nome de usuário usr99.

A primeira quota é a do diretório /home. Isso engloba também a sua página web pessoal, pois ela se encontra em um subdiretório /home/html. Todos os dias, de madrugada, é feito uma cópia de segurança (ou backup) deste diretório. Isso significa que é possível recuperar um arquivo ou diretório.

Se você possui algo que precise de muitos arquivos mas que não ocupam muito espaço (por exemplo um diretório node_modules, ou um clone de um repositório gigante), você pode utilizar o diretório /nobackup. Note que como o nome diz, não são feitas cópias de segurança neste diretório, e qualquer arquivo que seja apagado acidentalmente é irrecuperável.

Para descobrir o quanto você tem de quota, utilize o comando quota -s:

$ quota -s
Disk quotas for user:
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
urquell.home:/home
                   634M   9766M   9766M            5084   40000   40000
urquell.home:/nobackup
                   367M   7813M   8008M           11992       0       0

O -s serve apenas para que os números apresentados sejam mais legíveis para humanos, com K para kilobyte, M para megabyte e G para gigabyte. Neste exemplo, o usuário possui 634M de espaço utilizado na quota /home e 367M de espaço utilizado na quota /nobackup. Além disso, são 5084 arquivos (ou diretórios, que também são arquivos) no /home e 11992 arquivos no /nobackup. Este usuário está gerenciando bem a sua quota e não estourou nenhum limite. A quota de um usuário estourado possui uma estrelinha * perto do limite excedido, como em:

$ quota -s
Disk quotas for user:
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
urquell.home:/home
                  2149M*  9766M   9766M   7days    5086   40000   40000
urquell.home:/nobackup
                   367M   7813M   8008M           11992       0       0

Caso este seja o seu caso, continue lendo.

Não consigo logar na minha conta

Você pode fazer login via SSH ou utilizar o modo texto nos laboratórios do DINF. O modo texto pode ser ativado pressionando Ctrl + Alt + F1, e lá será pedido o seu nome de usuário e senha para entrar no sistema, como se fosse uma sessão SSH.

Com acesso ao sistema, agora você pode limpar a sua conta, se atentando aos vilões da quota.

Vilões da quota

.cache, .local, .vscode, .npm, …

Os principais vilões são “invisíveis”, e são diretórios de trabalho de programas que abusam do espaço em disco para funcionar. Os principais encontrados são:

Diretório

Descrição

O que fazer

~/.cache

Navegadores web, programas
gráficos usam para melhorar o
desempenho.
Pode apagar o conteúdo sem problema.
Se apagar, os softwares criam de novo.
Ocupa muito espaço.
Coloque no /nobackup.

~/.local/lib/python*

Bibliotecas Python instaladas
pelo pip.
Pode usar muitos arquivos pequenos.
Recomendado colocar no /nobackup.

~/.local/share/Trash

Lixeira da área de trabalho
Vale a pena manter no /home.

~/.vscode

Configuração e extensões
do VS Code.
Ocupa muito espaço.
Coloque no /nobackup.

~/.npm

Cache do npm, usado para
melhorar o desempenho
Pode usar muitos arquivos pequenos.
Coloque no /nobackup

~/.eclipse

Configurações do Eclipse
Pode usar muitos arquivos pequenos.
Coloque no /nobackup

~/.arduino*

Configurações e bibliotecas
do Arduino
Pode usar muitos arquivos pequenos.
Coloque no /nobackup

~/.mozilla

Perfil do navegador com
configurações, histórico,
extensões e sessões salvas
Vale a pena manter no /home.

Um script em bash para colocar alguns diretórios no /nobackup é o que segue:

LINK_TO_NOBACKUP=.cache .local .npm
for directory in $LINK_TO_NOBACKUP; do
   mv ${HOME}/${directory} /nobackup/$(id -gn)/${USER}/${directory}
   ln -s /nobackup/$(id -gn)/${USER}/${directory} ${HOME}/${directory}
done;

Ele move o diretório para o /nobackup e daí faz um link simbólico para lá. Isso significa que se você tentar acessar o diretório, o sistema operacional vai “redirecionar” você para lá.

Mailbox

A sua caixa de e-mail fica em ~/Mailbox. Dependendo da quantidade de e-mails que você recebe e os anexos destes e-mails, a sua caixa de entrada pode ficar com um tamanho considerável. Algo recomendado é entrar no Roundcube Webmail e pesquisar pelos e-mails com anexos e então apagá-los, porque eles são os que mais ocupam espaço.

Quaisquer outros arquivos

Se você ainda não souber exatamente onde estão os arquivos que estão ocupando o espaço no seu disco, use o comando du:

$ cd
$ du -had 1 | sort -h
0    ./.cache
4,0K ./.bash_history
4,0K ./.bash_logout
4,0K ./.profile
4,0K ./.python_history
8,0K ./.linuxmint
32K  ./.ssh
52K  ./dev
104K ./.cinnamon
148K ./.java
256K ./.config
880K ./Mail
1,1M ./.local
1,8M ./slides.pdf
39M  ./Mailbox
60M  ./soft
122M ./.mozilla
371M ./Downloads
634M .

Podemos ver neste exemplo que o diretório de Downloads e o perfil do Firefox no .mozilla ocupam a maior parte do espaço, e devem ser o maior alvo de limpeza. Este usuário colocou o .cache no /nobackup, então ele aparece com 0 bytes.

Caso você queira manter um certo arquivo ou diretório, mas fazer com que ele use menos espaço, uma opção é comprimí-lo. Você pode utilizar o comando tar ou o comando zip para realizar tal ação, mas note que a compressão não vai ajudar com arquivos já bem comprimidos como imagens (como JPG e PNG), vídeos (como MP4, WEBM) e áudio (como MP3, OGG).

Recuperar um arquivo ou diretório

Aviso

Se você criou e deletou o arquivo que você quer recuperar no mesmo dia, pode não ser possível que ele seja recuperado, pois as cópias de segurança são feitas uma vez por dia de madrugada.

Para recuperar um arquivo que você perdeu, mande um e-mail para suporte@inf.ufpr.br com assunto “Recuperação de arquivo” e as seguintes informações no corpo:

  • Seu nome completo, grafado corretamente e SEM abreviaturas;

  • Seu nome de usuário;

  • O caminho completo do arquivo ou diretório perdido;

  • A data e a hora em que o arquivo foi apagado.

Funcionamento da quota

Quando se roda o comando quota -s pode se observar que existe tanto uma coluna quota, quanto uma coluna limit, e elas significam coisas diferentes. Vamos experimentar criando um arquivo de tamanho grande o suficiente para exceder a quota, mas não o limit:

$ head -c 1400MB /dev/zero >test
$ quota -s
Disk quotas for user:
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
urquell.home:/home
                  1970M*  1954M   2149M   7days    5086   30000   30000
urquell.home:/nobackup
                   367M   1954M   2149M           11992       0       0
$ touch test-file
$ echo oi >test-file
$ mkdir test-dir

Note que estamos com a quota estourada mas não somos impedidos de criar arquivos ou diretórios. Vamos substituir exceder o limit então para ver o que acontece:

$ head -c 2000M /dev/zero >test
head: erro de escrita de 'standard output': Cota da disco excedida
$ quota -s
Disk quotas for user:
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
urquell.home:/home
                  2149M*  1954M   2149M   7days    5086   30000   30000
urquell.home:/nobackup
                   367M   1954M   2149M           11992       0       0
$ touch test-file
$ echo oi >test-file
-bash: echo: erro de escrita: Cota da disco excedida
$ mkdir test-dir
mkdir: não foi possível criar o diretório “test-dir”: Cota da disco excedida

Observe que depois de exceder o limit, não é possível mais escrever no disco.

Essa janela que existe entre o space e o quota é o tempo de avisar as aplicações que a quota foi excedida para que elas parem de escrever, porque quando chegar no limit, o sistema simplesmente vai parar de funcionar completamente até que o espaço seja liberado de novo. De forma análoga isso acontece com a quota de número de arquivos, mas como os dois valores são iguais, ao chegar em 30 mil arquivos, o sistema vai simplesmente parar de permitir a criação de novos arquivos.

Arquivos e diretórios sem cópia de segurança

Alguns arquivos e diretórios NÃO TEM cópia de segurança. Estes são padrões de --exclude do rsync, tudo relativo ao diretório do usuário, então ~/nobkp é excluído mas ~/a/nobkp não é.

backup/
[cC]ache4
[cC]ache
.[cC]ache
.mozilla/**/Cache*
.opera/opcache/*
*/*/.openoffice.org2/**/*cache
*/*/.jpi_cache/*
favicon_cache/*
nobk/*
nobkp/*
nobackup/*
swap
tmp/*
GNUstep/*
Mail/Trash
msn/*
.xsession-errors
amsn/*
.amsn/*
.amsn*/*
*/*/.amsn/*
*/*/.opera/acpo/*
*/*/.fontconfig/*
.xMule/*
.[ax]Mule/*
.azureus/*
.gaim/*
.dbus/*
.kde/*
.metacity/sessions/*.ms
.fontconfig/*
.themes/*
.thumbnails/*
.macromedia/*
.wine/*
raw/*
*.raw
*.qcow2
.Trash*/***
Trash*/***
trash*/***
.dropbox.cache/***
.nfs*
lost+found