> ## Documentation Index
> Fetch the complete documentation index at: https://docs.saninternet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quota

> Define quantos arquivos cada conta de cliente pode ter, a partir do espaço em disco da conta. O ajuste protege o limite de arquivos do disco do servidor, que acaba antes do espaço…

**Caminho no painel:** menu da esquerda > Configuração > cartão **Sistema** >
**Quota**. O link **(Configurar)**, no campo de espaço em disco da conta de cliente,
leva à mesma tela.

![Tela Quota com a fórmula, o valor sugerido para o disco e o campo Tamanho médio do arquivo](https://mintcdn.com/san-internet/uqy6kUqe17ldMjVV/keyhelp-admin/imagens/sistema-quota.png?fit=max\&auto=format\&n=uqy6kUqe17ldMjVV\&q=85\&s=51bbe8968b8e5c1097f0220d6fbc8101)

1. Em **Tamanho médio do arquivo**, escolha a unidade, **B** ou **KB**, e escreva o valor.
2. Clique em **Salvar**.

## A conta que o painel faz

A tela mostra a fórmula:

> Quantidade máxima de arquivos = Espaço em disco alocado / Tamanho médio do arquivo

**A tela também sugere um valor**, calculado para o disco deste servidor: o espaço
total e quantos arquivos o disco comporta. Numa máquina com 25,81 GB e 1,6 milhão
de arquivos possíveis, a sugestão foi **16 KB**.

| Tamanho médio | Conta com 1 MB de disco pode ter |
| - | - |
| **8192 B** | 122 arquivos |
| **16384 B** | 61 arquivos |
| **8 KB** | 125 arquivos, porque aqui **1 KB são 1.000 bytes** |
| **0** | sem limite de arquivos |

**A mudança vale para as contas que já existem, na hora.** Ao salvar 16384 B, a
conta de 1 MB passou de 122 para 61 arquivos sem esperar o minuto seguinte. **Conta
com espaço em disco ilimitado fica sem limite de arquivos.**

> [!WARNING]
>
> **Trocar a unidade não converte o número**
>
> Com `8192` e a unidade **B**, trocar para **KB** deixa o campo com `8192`, que
> passa a valer 8.192.000 bytes. Confira o número depois de mudar a unidade.

> [!NOTE]
>
> **O limite só vale se a quota do disco estiver ativa no servidor**
>
> O painel grava o número, e quem aplica é a quota do sistema de arquivos. Numa
> máquina de teste em que ela não funcionava, o painel salvou normalmente e mostrou
> a mensagem de sucesso. O erro do comando de quota ficou só no registro interno do
> painel, no servidor, e nenhuma tela avisou.

## Como saber se a quota do servidor funciona

O sinal mais visível está em outra tela: **toda conta de cliente nova nasce com
o triângulo vermelho** na coluna **S** de
[Administração do Usuário](/keyhelp-admin/administracao-do-usuario).
A criação da conta termina gravando a quota, e é esse o passo que falha.

No servidor, quem administra confirma com `quotaon -p /`, que deve responder que a
quota de usuário está ligada, e com o registro da tarefa do painel,
`/var/log/keyhelp/cronjob/update.log`, que mostra o erro do `setquota` quando ela
não funciona.

### O caso medido: a raiz com um nome que não existe

Na máquina de teste, o erro era este:

```
setquota: Cannot stat() mounted device /dev/root: No such file or directory
```

O sistema de arquivos e o `/etc/fstab` estavam certos, com `usrquota,grpquota`
na raiz, e o kernel tinha suporte a quota. O problema era o nome do disco: o
servidor dava boot com o kernel montando a raiz sozinho, sem initramfs, e nesse
caso a raiz aparece como `/dev/root`, um nome que não existe em `/dev`. As
ferramentas de quota procuram o disco por esse nome e param. É comum em servidor
virtual que dá boot pelo kernel do provedor.

**O conserto foi criar o `/dev/root` apontando para o disco real, de forma
permanente**, com uma regra que recria o link a cada boot antes de a quota ser
ligada, e reiniciar. Depois disso a quota ligou no boot, e a conta de cliente
criada em seguida já nasceu com o limite aplicado. É trabalho de quem administra o
servidor, não do painel.

**Conferido que ela bloqueia**, depois do conserto, numa conta de teste com 1 MiB
de disco e 122 arquivos, gravando como o próprio usuário da conta:

| Tentativa | O que aconteceu |
| - | - |
| gravar um arquivo de 2 MB | a gravação **parou** quando a conta chegou ao limite de disco |
| criar 150 arquivos | parou no 109º, com *"Disk quota exceeded"*: a conta já tinha 14, e **122** é o limite |

> [!WARNING]
>
> **Ligar a quota do servidor não aplica o limite das contas que já existem**
>
> Medido: depois do conserto, as contas antigas continuavam sem limite nenhum no
> sistema. O painel só grava a quota de uma conta quando o **Espaço de Disco**
> dela muda. Troque o valor de cada conta antiga por outro e volte, e confira em
> [Administração do Usuário](/keyhelp-admin/administracao-do-usuario).

## O que pode dar errado

| Sintoma | Causa | O que fazer |
| - | - | - |
| Os limites de arquivos ficaram mil vezes maiores | a unidade trocou de **B** para **KB** sem o número mudar | escrever o valor de novo na unidade certa |
| **Toda conta nova nasce com triângulo vermelho** | a quota do servidor não funciona | ver **Como saber se a quota do servidor funciona**, acima |
| Liguei a quota do servidor e os clientes antigos continuam sem limite | o painel só grava a quota quando o espaço em disco da conta muda | trocar o **Espaço de Disco** de cada conta antiga e voltar |
| O limite de arquivos não é respeitado | a quota do disco não está ativa no servidor | conferir a quota do sistema de arquivos no servidor |

## Ver também

* [Limites e permissões do cliente](/keyhelp-admin/limites-e-permissoes-do-cliente), o espaço em disco de cada conta e o link **(Configurar)**


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.