Não existe um comando único para gerar um "relatório" perfeitamente formatado das cotas do usuário nos diretórios domésticos no Linux. A abordagem depende de quais informações você precisa em seu relatório e de como você deseja formatar. Aqui estão alguns métodos, combinando comandos Linux padrão:
Método 1:Usando `cota` e` awk` (para um relatório básico) Este método funciona se as cotas estiverem ativadas no seu sistema. Ele mostra uso e limites para cada usuário.
`` `BASH
Quota -v | Awk '{imprima $ 1, $ 2, $ 3, $ 4}'
`` `
* `Quota -v`:mostra informações detalhadas da cota para o usuário atual. Para ver as informações para todos os usuários, use `sudo cota -v` (requer privilégios de raiz).
* `awk '{print $ 1, $ 2, $ 3, $ 4}'`:Isso extrai o nome de usuário, o espaço usado, o limite suave e o limite rígido. Ajuste os números de campo se a sua saída `quota` for diferente (verifique a página` Quota` Man para obter detalhes).
Método 2:usando `find`,` du` e `awk` (para um relatório mais detalhado) Esse método é mais flexível, permitindo que você inclua outros detalhes, mas * não * mostra limites de cotas, apenas o espaço usado. Requer privilégios de raiz.
`` `BASH
Find /Home -Type d -User "$ (whoami)" -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} end {for (user in sum) imprima usuário, soma [usuário]}'
`` `
ou para todos os usuários:
`` `BASH
encontre /home -Type d -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} end {for (user in sum) imprima usuário, soma [usuário]}'
`` `
* `encontre /home -Type d -User" $ (whoami) "-printf"%u%s%p \ n "`:encontra todos os diretórios domésticos, imprime o nome de usuário (`%u`), tamanho em bytes (`%s`) e caminho (`%p`). Substitua `$ (whoami)` por `-User All` para listar todos os usuários; Isso requer privilégios de raiz.
* `awk '{sum [$ 1]+=$ 2} end {para (Usuário em sum) Imprimir usuário, soma [usuário]}'`:isso resume os tamanhos para cada usuário e imprime o usuário e seu uso total de disco.
Método 3:Combinando com `sort` e` numfmt` para um relatório formatado Podemos melhorar a saída do Método 2 para melhor legibilidade:
`` `BASH
encontre /home -Type d -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} end {para (usuário em sum) Imprimir usuário, soma [usuário]}' | classificar -k2,2nr | NUMFMT - -TO =IEC - -SUFFix =B.
`` `
* `Sort -k2,2nr`:classifica a saída numericamente em ordem inversa (o maior uso primeiro) com base na segunda coluna (tamanho).
* `NUMFMT - -TO =IEC - -SUFFIX =B`:formato os números usando unidades IEC (KB, MB, GB, etc.) e adiciona um sufixo" B "para clareza.
Considerações importantes: *
Privilégios de raiz: Para obter informações sobre todos os usuários, você precisará executar esses comandos com `sudo`.
*
cota habilitada: Métodos usando `cota` O único trabalho se as cotas do usuário estiverem ativadas no seu sistema. Você pode verificar isso com `Repquota -a` (precisa de root).
*
sistema de arquivos: Esses comandos assumem que seus diretórios domésticos estão em `/home`. Se o seu sistema usar um local diferente, ajuste o comando `find` de acordo.
*
Manuseio de erro: Os scripts fornecidos carecem de manuseio de erros robustos. Para uso da produção, você deseja adicionar verificações para erros (por exemplo, `find` falhando, analisando problemas).
Lembre -se de adaptar esses comandos com base em suas necessidades específicas e na saída dos comandos em seu sistema. Considere escrever um script mais sofisticado usando uma linguagem de script como Python ou Bash para necessidades avançadas de relatórios. Isso pode envolver a integração do banco de dados para armazenar e consultar informações de cotas regularmente.