Preciso descobrir quanto espaço em disco está sendo ocupado por cada usuário na rede. Estou ciente df
e du
comandos: eu poderia listar todo o sistema de arquivos e AWK a saída, mas me pergunto se existe um comando mais padrão.
A saída que estou procurando é:
usr1 xMb
usr2 yMb
[...]
Total zMb
Alguma ideia?
Obrigado!
PS. Red Hat Linux EE
linux
hard-drive
usage
disk-space-utilization
Escualo
fonte
fonte
Outra boa solução que encontrei aqui . Navegue até o diretório de interesse e execute (como alternativa, mude
.
para o diretório que mais lhe interessar, por exemplo ,/home/
):fonte
-printf "%u\t%s\n"
eawk -v OFS="\t"
se você acha que já pode ter um nome de usuário com espaço nele.Ou para encontrar os usuários problemáticos (diretórios também),
e para Solaris:
Isso fornece uma lista dos 25 maiores diretórios. Não é exatamente o que você pediu, mas eu uso o tempo todo.
fonte
O que fazemos em muitos lugares é usar o sistema de cotas, mas definir cotas absurdamente altas. Dessa forma, você obtém o benefício de relatórios rápidos. Em um site, cada usuário possui 1 TB de espaço "cota".
Periodicamente, aumentamos a cota mais alta à medida que o disco reparável cresce - inicialmente era de 30 GB por usuário, algo absurdamente alto na época.
fonte
Não existe esse comando. Você precisa escrever alguns comandos de shell para isso.
fonte
O método do ThorstenS parece ser mais trabalhoso do que o necessário para mim, porque ele é executado várias vezes. Por um lado, eu apenas faria 1 comando find, e exibia o proprietário e o tamanho de cada arquivo e, em seguida, faria algum tipo de mágica nesse arquivo.
A descoberta seria algo como o que retorna nome de usuário (ou número de identificação sem nome de usuário) e espaço usado em bytes, em um arquivo delimitado por bytes nulos:
Você pode substituir
\0
por algo que possa ser um pouco mais fácil de trabalhar, como guias ou novas linhas, mas que seria menos seguro se você tiver nomes de arquivos descolados.Se você quisesse ser ainda mais eficiente, poderia canalizar a saída para um script que lida com ela à medida que é executado, mas isso seria um pouco mais trabalhoso e você precisaria acertar na primeira vez.
fonte
Eu fiz isso :) Não é rápido, mas funciona:
Um grande aumento de velocidade ocorrerá se procurarmos apenas UIDs> 1000:
fonte