Pular para o conteúdo

Módulo Storage

O módulo Storage realiza uma análise contínua da integridade e do desempenho de discos rígidos (HDs) e unidades de estado sólido (SSDs), coletando informações S.M.A.R.T. para identificar sinais de desgaste, falhas iminentes e degradação do dispositivo

Lista todos os dispositivos de armazenamento detectados no sistema.

Retorno:
Array de strings com os caminhos dos dispositivos

{ "/dev/sda", "/dev/sdb" }

Exemplo:

local devices = storage.list_devices()
for _, dev in ipairs(devices) do
print(dev)
end

Retorna informações gerais do disco.

Parâmetros:

path (string): Caminho do dispositivo (ex: "/dev/sda")

Retorno:

Table com os campos:

CampoTipoDescrição
device_modelstringModelo do disco
model_familystringFamília do modelo (apenas ATA)
serial_numberstringNumero de serie
firmware_versionstringVersão do firmware
user_capacitystringCapacidade total
rotation_ratestringRPM (apenas ATA)
form_factorstringFormato físico (apenas ATA)
interfacestringVelocidade da interface (apenas ATA)
protocolstring”ATA”, “NVMe” ou “SCSI”
smart_supporttableInformações de suporte S.M.A.R.T.
logical_block_sizenumberTamanho do bloco logico
physical_block_sizenumberTamanho do bloco físico
nvme_versionstringVersão NVMe (apenas NVMe)

Exemplo de uso:

local info = storage.info("/dev/sda")
print(info.device_model, info.serial_number)

Retorna o status geral de saúde do disco (S.M.A.R.T. overall-health).

Parâmetros:

path (string): Caminho do dispositivo

Retorno:

Table com os campos:

CampoTipoDescrição
passedbooleantrue se o disco passou no teste S.M.A.R.T.
statusstring”PASSED” ou “FAILED”
messagestringMensagem descritiva do status

Exemplo de uso:

local h = storage.health("/dev/sda")
if h.passed then
print("Disco saudavel")
else
print("FALHA: " .. h.message)
end

Retorna todos os atributos S.M.A.R.T. do disco.

Parâmetros:

path (string): Caminho do dispositivo

Retorno:

Array de objetos, cada um com os campos:

CampoTipoDescrição
idnumberID do atributo
namestringNome do atributo (ex: “Temperature_Celsius”)
valuenumberValor normalizado
worstnumberPior valor ja registrado
threshnumberLimite de falha
rawnumberValor bruto (raw)
when_failedstringIndicação de falha
flagsstringFlags do atributo

Exemplo de uso:

local attrs = storage.attributes("/dev/sda")
for _, a in ipairs(attrs) do
print(a.id, a.name, a.raw)
end

Retorna um atributo S.M.A.R.T. especifico pelo nome.

Parâmetros:

ParâmetroTipoDescrição
pathstringCaminho do dispositivo
attr_namestringNome do atributo (ex: “Temperature_Celsius”)

Retorno:

O objeto do atributo se encontrado, nil caso contrário

Exemplo de uso:

local attr = storage.attribute("/dev/sda", "Power_On_Hours")
if attr then
print("Horas ligadas:", attr.raw)
end

Retorna a temperatura atual do disco em Celsius.

Parâmetros:

path (string): Caminho do dispositivo

Retorno:

Temperatura em graus Celsius, ou nil se indisponível

Exemplo de uso:

local temp = storage.temperature("/dev/sda")
if temp then
print("Temperatura:", temp, "C")
end

Retorna um resumo do log de erros do disco.

Parâmetros:

path (string): Caminho do dispositivo

Retorno:

Table ou nil com os campos (varia por protocolo):

CampoTipoDescrição
ATA
countnumberQuantidade de erros registrados
logged_errorsnumberErros logados
NVMe
sizenumberTamanho do log
readnumberEntradas lidas
unreadnumberEntradas nao lidas

Exemplo de uso:

local log = storage.error_log("/dev/nvme0")
if log then
print("Erros nao lidos:", log.unread)
end

Retorna o resultado do ultimo self-test do disco.

Parâmetros:

path (string): Caminho do dispositivo

Retorno:

Table ou nil com os campos (varia por protocolo):

CampoDescrição
ATARetorna o último teste da tabela de self-tests
NVMecurrent_self_test_operation (string): Operação atual

Exemplo de uso:

local test = storage.self_test("/dev/sda")
if test then
print("Status:", test.status)
end