Suponha que eu tenha algum dispositivo montado em /backups
. Estou copiando arquivos selecionados do sistema para backup e gostaria de reduzir a quantidade de ruído que o dispositivo está fazendo. Eu sei que posso usar hdparm -M
para ajustar a configuração "Automatic Acoustic Management (AAM)" do dispositivo. No entanto, não sei como devo obter o dispositivo (por exemplo /dev/sdc
) de um determinado diretório (por exemplo, se eu tivesse um script que computasse o último local de backup como /backups/2017/12/31
).
O melhor que posso fazer é
echo /dev/$(lsblk -no pkname $(findmnt -nvoSOURCE -T "$DIRECTORY"))
mas isso requer /dev/
prefixo de codificação e assume que há apenas um disco de backup. Como tornar isso mais estável?
Observe que esta questão é especificamente sobre como localizar o(s) disco(s) correto(s), não a partição. Caso você só precise encontrar a partição correta df
ou findmnt
será suficiente.
Observe também que, caso um diretório seja montado no md
dispositivo, o dispositivo pai será algo como o md0
que não pode ser usado com hdparm
. Nesse caso, haverá mais de um disco subjacente; portanto, na realidade, essa questão é sobre o mapeamento de um único arquivo ou diretório para um ou mais discos.
Esse tipo de script parece ser mais estável (funciona com discos SATA únicos e ataques de software):
Obviamente, substitua o
echo
comando pela ação real que deseja executar para cada disco.Exemplo de saída para o diretório no ataque de software MD de 4 discos:
Exemplo de saída para diretório em 1 partição regular de disco:
Uma forma simples de saber é o uso de
df
invocado com o caminho (absoluto) da sua pasta: