Uma maneira hacky é ignorar a necessidade de sudo
lendo o log do sistema com:
dmesg | grep blocks
Por favor, note que isto pode não ser ideal, por isso a sua quilometragem pode variar ...
Estou tentando descobrir o tamanho total do meu disco rígido usando df -h
, mas ele imprime o tamanho de cada partição e requer sudo
.
Existe alguma maneira de obter o tamanho total do meu disco rígido usando a linha de comando, sem a necessidade de permissão de root?
Se você quiser usar essas informações em um script, por exemplo, usando
sudo blockdev --getsz /dev/sda
pode ser mais fácil que o fdisk ou o hdparm, já que só lhe dá a informação relevante (basta multiplicar por 512). No entanto, também exigirá sudo.
Você poderia, é claro, alterar a configuração do sudo de tal forma que ele permita executar este comando específico sem pedir a senha (eu acho que blockdev --getsz
é bastante seguro mesmo quando executado por um usuário normal não privilegiado).
Isso seria feito adicionando a seguinte linha a /etc/sudoers
:
ALL ALL= NOPASSWD:/sbin/blockdev --getsz /dev/*
Quando você editar este arquivo, certifique-se de usar o comando sudo visudo
e não seu editor usual. Caso contrário, é muito fácil fazer um erro de sintaxe, o que resultaria em não ser mais capaz de usar o sudo (você teria que reinicializar no modo de recuperação para corrigir isso).
Se você deseja o tamanho em bytes e apenas o valor, por exemplo, para script:
lsblk -b --output SIZE -n -d /dev/sdX
12220202
-b : Saída em bytes. -n : Sem títulos. Queremos apenas o valor numérico puro.
- SIZE de saída : Imprima apenas a coluna de tamanho.
-d / dev / sdXn : O dispositivo que tamanho que queremos conhecer. X é, e. d, n é, por exemplo, 1 para a primeira partição do disco d.
Vantagens:
Você tem uma instalação ruim ou um administrador de sistema absurdamente paranóico. Eu nunca ouvi falar de df
exigindo privilégios de root antes. E trabalhei com vários tipos diferentes de sistemas operacionais unix / unix.
De qualquer forma, isso fornecerá o tamanho total de todas as partições de disco (primeiro df
column é /dev/hd...
ou /dev/sd...
) em blocos (kB):
df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s}'
ou em GB:
df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s/1048576}'
Eu não estou na minha caixa do Linux agora, mas você pode tentar:
hdparm -I /dev/sda
ou
fdisk -l
que também provavelmente exigirá um sudo.
Eu não vi em nenhum lugar que o df requer raiz. Isso é estranho.