Erstellen Sie ein Skript zum automatischen Bearbeiten einer Datei und Ausführen eines Befehls

Erstellen Sie ein Skript zum automatischen Bearbeiten einer Datei und Ausführen eines Befehls

Ich habe die Foren durchsucht, aber als Neuling kann ich nichts finden, was ich verstehe.

Ich versuche, ein Skript zu erstellen, das drei bestimmte Textzeilen bearbeitet, sie speichert und den Neustartbefehl für den Dienst ausführt. Dies geschieht zur Lüftersteuerung. Ich habe noch keine GUI gefunden, also bearbeite ich die Geschwindigkeiten manuell, da es Sommer ist und ich tagsüber höhere Lüftergeschwindigkeiten brauche.

Bevor jemand sagt, es soll temperaturabhängig sein: Ich möchte, dass die Temperatur unter einem bestimmten Grad bleibt, und nachts ist eine niedrigere Lüftergeschwindigkeit ok, also ist das eigentlich unmöglich.

sudo nano /etc/fancontrol
sudo service fancontrol restart 

Befehle, die ich täglich ausführe, aber es langweilt mich, sie ständig zu bearbeiten. Nehmen wir an, ich könnte zwei Skripte verwenden (eines mit höherer und eines mit niedrigerer Lüftergeschwindigkeit) und sie manuell oder automatisch zu einer bestimmten Stunde ausführen.

# 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 

Die fettgedruckten Werte sind die, die ich ändern muss.

Vielen Dank im Voraus, Leute!!!

Antwort1

Mit dem Befehl können Sie sedeine Datei mit einem Befehl bearbeiten. Beispiel:

sed -i 's/MINSTART=hwmon2\/pwm2=220/MINSTART=hwmon2\/pwm2=400/' /etc/fancontrol

ändert den Wert 220in 400.

sbedeutet "Suchen". Nach dem Trennzeichen /, das den Befehl in Teile trennt, folgt der zu suchende String, bis zum nächsten (nicht maskierten) /. Das \/ist ein maskiertes /, was bedeutet: "interpretiere nächstes /als wörtliches Zeichen, das zum Suchstring gehört, und nicht als Trennzeichen für die verschiedenen Teile des Befehls. Dann folgt der String, durch den du ersetzt hast, abgeschlossen mit /. Nach dem abschließenden /kannst du Optionen hinzufügen. Eine wichtige ist g, was bedeutet, dass jedes Vorkommen ersetzt werden soll. Standardmäßig wird nur das erste gefundene Vorkommen ersetzt.

Wenn Sie die Suchzeichenfolge spezifisch machen, verringert sich die Wahrscheinlichkeit, dass sie auch mit einer anderen Zeichenfolge in der Datei übereinstimmt.

verwandte Informationen