Ich führe ein Shell-Skript aus, das in eine Datei schreibt.
Die Fertigstellung dieses Skripts kann einige Zeit in Anspruch nehmen, und ich möchte die Teilausgabe überwachen, anstatt auf die Fertigstellung des gesamten Skripts zu warten.
Ist es sicher, eine vom Skript geschriebene Datei zu öffnen (Doppelklick)?
Antworten:
Das Lesen der Datei ist sicher, obwohl ein Doppelklick, den Sie erwähnt haben, wahrscheinlich die Datei in einem Editor öffnen wird, der Ihnen die Möglichkeit bietet, Änderungen vorzunehmen und diese zu speichern. Da Fehlklicks auftreten, empfehle ich Befehle, mit denen Sie die Datei nicht einmal ändern können.
Dies sind Beispiele, die im Terminal funktionieren. Sie lesen nur die Datei:
quelle
Solange Sie nicht schreiben, sollte es in Ordnung sein.
Ich würde jedoch die Verwendung empfehlen
in einem anderen Terminal.
Dieser Befehl folgt der Datei
log_file
und schreibt den neu hinzugefügten Inhalt, sobald er vom Skript aktualisiert wird.quelle
Nicht genügend Mitarbeiter, um einen Kommentar zu Kamil Maciorowskis Antwort hinzuzufügen:
Für einige Dateien möchten Sie
tail -F file
, dass das Folgende durch eine Rotation fortgesetzt wird. Sieh dir zum Beispiel Syslog an.quelle
Wenn das Skript (oder die zugrunde liegende Framework-Implementierung) das Datei-Handle während seiner Arbeit wiederholt öffnet und schließt, kann es aus folgenden Gründen zu einem Fehler aufgrund eines Verstoßes gegen die Freigabe beim anschließenden Öffnen
des Schreibmodus kommen : 1) Das Skript fordert möglicherweise das Schreiben an Der Zugriff erfolgt im exklusiven Modus (mit Ausnahme des gleichzeitigen Lesezugriffs). Wenn Ihr Datei-Editor / Viewer-Programm also nur die Datei liest, kann dies einen Fehler im Schreibskript auslösen.
2) Zusätzlich sperren einige Datei-Editoren / -Viewer die Datei für die gesamte Dauer, für die sie die Datei geöffnet haben.
Zusammenfassend lässt sich sagen, dass es Probleme geben kann, die von dem Programm abhängen, mit dem Sie die Datei anzeigen. Und es gibt mögliche Probleme, die sich aus der Implementierung (oder dem zugrunde liegenden Framework) des Skripts ergeben, das in die Datei schreibt.
quelle
tail -f
oderless +F
routinemäßig überwacht wird, spielt dies also keine Rolle .