Estou em um servidor Ubuntu e quero verificar um resumo do uso do disco dos diretórios internos /var/lib/docker
Estou confuso porque não consigo verificar o uso do disco de todos os diretórios internos /var/lib/docker
usando um glob *
.
O diretório /var/lib/docker
existe claramente e possui diretórios dentro dele:
$ sudo du -s /var/lib/* | grep docker
865644 /var/lib/docker
8 /var/lib/docker-engine
$ sudo du -s /var/lib/docker/*
du: cannot access '/var/lib/docker/*': No such file or directory
$ sudo file /var/lib/docker
/var/lib/docker: directory
$ sudo ls /var/lib/docker | head -n 1
builder
$ sudo du -s /var/lib/docker/builder
20 /var/lib/docker/builder
Por que estou recebendo um erro de du
?
du: cannot access '/var/lib/docker/*': No such file or directory
Meu erro parece relacionado a ser um usuário não root porque, se eu mudar para o usuário root, posso emitir o du
comando:
# du -s /var/lib/docker/* | sort -n
4 /var/lib/docker/runtimes
4 /var/lib/docker/swarm
4 /var/lib/docker/tmp
4 /var/lib/docker/trust
20 /var/lib/docker/builder
20 /var/lib/docker/plugins
36 /var/lib/docker/volumes
60 /var/lib/docker/network
72 /var/lib/docker/buildkit
208 /var/lib/docker/containers
1880 /var/lib/docker/image
863328 /var/lib/docker/overlay2
Você recebe o erro porque seu shell (não raiz) tentou expandir o glob
/var/lib/docker/*
e não conseguiu (porque /var/lib/docker não pode ser lido pelo usuário). Seu shell então deixou o glob intacto, deixando um asterisco literal parasudo
, que é o quedu
está reclamando:... porque não há nenhum arquivo ou diretório nomeado
*
em /var/lib/docker/.O
du
comando está sendo executado pelo usuário root, mas a expansão glob é feita antes com seu usuário, e por não poder ser expandido (devido às permissões do diretório), odu
comando usa o literal*
como parte do caminho.Se você quiser ver o tamanho das pastas dentro
/var/lib/docker
de , você pode chamar um shell comsudo
e proteger a expansão glob (*
) com aspas simples:(Eu uso o formato legível por humanos (
-h
in-sh
) e classifico o resultado com base nos tamanhos retornados, mas você pode alterá-lo)Desta forma a expansão será feita como usuário root (ao invés de ser feita com seu usuário).