Eu pesquisei nos fóruns, mas sendo um novato não consigo encontrar algo que eu possa entender.
Estou tentando criar um script que edita 3 linhas específicas do texto, salva e executa o comando de reinicialização do serviço. Isso está sendo feito para controle do ventilador. Ainda não encontrei uma GUI, então edito manualmente as velocidades, já que é verão e durante o dia preciso de velocidades mais altas do ventilador.
Antes que alguém diga para basear a temperatura, quero que a temperatura fique abaixo de um certo grau e durante a noite a velocidade mais baixa do ventilador está ok, então é meio impossível.
sudo nano /etc/fancontrol
sudo service fancontrol restart
comandos que executo diariamente, mas cansei de editá-los o tempo todo. Digamos que eu possa usar 2 scripts (um com velocidades de ventilador mais altas e outro com velocidades mais baixas) e executá-los manual ou automaticamente em um horário específico.
# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/it87.2608
DEVNAME=hwmon1=coretemp hwmon2=it8728
FCTEMPS=hwmon2/pwm2=hwmon2/temp2_input hwmon2/pwm3=hwmon1/temp4_input
FCFANS=hwmon2/pwm2=hwmon2/fan2_input hwmon2/pwm3=hwmon2/fan1_input
MINTEMP=hwmon2/pwm2=10 hwmon2/pwm3=25
MAXTEMP=hwmon2/pwm2=80 hwmon2/pwm3=55
MINSTART=hwmon2/pwm2=**220** hwmon2/pwm3=210
MINSTOP=hwmon2/pwm2=**200** hwmon2/pwm3=200
MAXPWM=hwmon2/pwm2=**220** hwmon2/pwm3=255
Valores em negrito são os que preciso alterar.
Desde já agradeço pessoal!!!
Responder1
Você pode usar o sed
comando para editar um arquivo usando um comando. Por exemplo,
sed -i 's/MINSTART=hwmon2\/pwm2=220/MINSTART=hwmon2\/pwm2=400/' /etc/fancontrol
mudará o valor 220
para 400
.
s
significa "pesquisa". Após o delimitador /
que separa o comando em partes, segue a string a ser pesquisada, até a próxima (sem escape) /
. O \/
é um escaped /
, que significa: "interprete next /
como um caractere literal pertencente à string de pesquisa em vez de um delimitador para as diferentes partes do comando. Em seguida, segue a string pela qual você substitui, terminada com /
. Após o terminating /
, você pode adicionar opções Uma importante é g
, o que significa que qualquer ocorrência deve ser substituída. Por padrão, apenas a primeira ocorrência encontrada é substituída.
Tornar a string de pesquisa específica diminui a chance de que ela também corresponda a outra coisa no arquivo.