É possível (7 dias) agendar o tempo de suspensão de um disco rígido?

9

Estou procurando uma maneira de agendar quando um disco rígido externo conectado à minha caixa Linux (Debian 9) entra em suspensão (para de girar).

Para colocar isso no conteúdo: Eu tenho uma caixa do Linux que roda como um servidor multimídia. Se uma chamada é feita para buscar conteúdo que está no disco rígido externo, geralmente leva de 15 a 30 segundos para o disco rígido acordar e começar a girar, o que a) é frustrante eb) às vezes causa tempos limite no servidor de multimídia. Eu poderia definir o disco rígido para ficar acordado e rodando 24/7, mas isso parece um desperdício quando na maioria das vezes eu só uso o servidor multimídia quando estou em casa.

Existe alguma ferramenta ou comando de software que eu possa usar para definir uma programação semanal para quando o disco rígido estiver girando - por exemplo, de segunda a sexta-feira: GIRANDO entre as 17h e as 23h de sábado a domingo: GIRANDO entre as 15h e as 23h OUTROS GIRANDO DE VOLTA sob demanda e dormindo conforme temporizador do sistema

Alex Ward
fonte
1
Portanto, você está diminuindo o tempo de execução do disco, mas iniciando / parando o disco -40 vezes por semana. Iniciar / parar um disco não é isento de custos. A menos que a eletricidade seja muito cara, você pode não valer o esforço.
waltinator
1
@waltinator Os HDDs modernos são projetados para lidar com centenas de milhares de ciclos de start-stop, portanto, ter um ciclo por dia não é absolutamente prejudicial. Levará literalmente mil anos para matar o HDD devido a um número excessivo de spin-downs nesse ritmo. Se alguma coisa, eu estaria mais preocupado com horas de rotação inútil.
Dmitry Grigoryev
@waltinator Fair argument, mas o ponto principal é que isso realmente resultaria em uma REDUÇÃO líquida em giros / reduções, pois no momento em que aumenta ou diminui mais ou menos toda vez que o conteúdo é solicitado ao servidor multimídia, particularmente durante o vezes eu quero agendar. Como você diz, provavelmente custa mais energia toda vez que a unidade gira - portanto, deixá-la girando à noite provavelmente reduziria o uso de energia.
Alex Ward

Respostas:

17

Um cronjob permitiria isso:

# At 11pm every day, enable sleep after 30s
0 23 * * * /sbin/hdparm -S6 /dev/disk/by-id/...

# At 5pm on weekdays, disable sleeping
0 17 * * 1-5 /sbin/hdparm -S0 /dev/disk/by-id/...

# At 3pm on the weekend, disable sleeping
0 15 * * 0,6 /sbin/hdparm -S0 /dev/disk/by-id/...
Stephen Kitt
fonte