[PATCH 1/2] configurehood: Copy local hoodfile to common location

Fabian Bläse fabian at blaese.de
Fr Dez 7 16:18:51 CET 2018


Hallo Adrian,

On 06.12.18 13:01, Adrian Schmutzler wrote:
> Ein paar Anmerkungen/Fragen:
> - Macht cp auto-overwrite?
Mit default settings: ja.

> - Ich überlege, was passiert, wenn so ein File gerade geschrieben (per wget) oder kopiert wird. Liegt dann da für 2 sec. ein halbes File rum oder macht das das Dateisystem intelligenter? (Man könnte ja auch hoodfile.tmp schreiben und dann mv machen) Für configurehood wäre es wurscht, aber ggf. würde dann ein anderes Skript dieses halbe File auswerten und versterben. (Mir fällt allerdings nichts "wichtiges" außerhalb configurehood ein, wo es schlimm wäre, wenn das ganz selten kaputt geht).
Das Dateisystem spielt hierbei keine Rolle. Die Frage ist, wie man mit dem OS kommuniziert.
Wenn man eine Datei zum überschreiben truncated (Auf Länge 0 gekürzt) und dann rein schreibt, dann liegt für den Zeitraum des Downloads eine "kaputte" Datei rum.
Verschiebt man eine Datei, dann bleibt der Dateiinhalt ja der gleiche und man verändert nur inodes. Dann passiert das ganze so atomar, dass man entweder eine vollständige Datei ließt, oder gar keine.

mv ist daher (natürlich nur innerhalb eines Dateisystems) atomar. wget und cp truncaten beim Überschreiben und laden dann direkt in die Datei, jedenfalls mit Standardoptionen.
Es gibt im Linux File Locks, da kenne ich mich aber nicht so genau aus.
Man könnte natürlich immer noch zusätzlich woanders hin laden und dann verschieben. Aber diese Operationen gehen so schnell (hoodfilewww wird iirc nur von cp geschreiben), dass eine Überschneidung so absurd unwahrscheinlich ist, dass ich nicht glaube dass hier ein Problem ist. Aber hübscher wäre es natürlich.

Gruß
Fabian

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20181207/49a93219/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev