[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Script geht nicht



Am 2012-08-06, David Raab <debian@david-raab.de> schrieb:
> On 08/04/2012 12:18 PM, Peter Blancke wrote:

>> noch in eine Ueberpruefung packen, ob die zu verschiebende Datei
>> nicht gerade in Benutzung ist (weil sie beispielsweise gerade
>> erstellt wird) und somit unvollstaendig sein koennte.

> Angemerkt dazu. Wenn man auf einem POSIX kompatiblen Dateisystem
> ist, und das verschieben innerhalb einer gleichen Partition
> stattfindet und nicht auf einem Remote Verzeichnis dann brauch man
> das nicht prüfen.

Ich pruefe nicht, weil ich den mv-Prozesz fuerchte (das ist bekannt,
dasz ein Move im gleichen Dateisystem hier keinen Schaden
anrichtet), sondern weil ich die Datei nicht gerne anderen Prozessen
zum Frasz vorlege und die sich vielleicht auf halb zubereitetes
Zeugs werfen.

Und da ich nicht weisz, wie die naechsten Prozesse mit Halbgegorenem
verfahren, pruefe ich erst, ob die Datei in Ruhe gelassen worden
ist. Der fuser-Aufruf erledigt das mit einem Einzeiler.

> Wenn es ein Remote Verzeichniss ist, zum beispiel eine Samba-Share
> dann funktioniert das nicht.

Drum; nur zum Beispiel.

> Allerdings bringt eine Überprüfung mit fuser dann auch wenig da
> die Datei von einem ganz anderen PC/Server bearbeitet werden kann.

Wenn mir fuser die Gewiszheit eines erfolgreich abgeschlossenen
Schreibprozesses liefert, bringt mir eine Ueberpruefung gerade auch
bei einer Remote-Ablieferung recht viel. Und die Universalitaet
eines solchen Verfahrens erlaubt mir spaeter Dateiverschiebungen
unabhaengig der Betrachtungsweise des Zieldateisystems; da ist dann
auch Remote-Verschieben ohne weitere Ueberlegung erlaubt.

> In der Praxis würde ich also sagen das man solch eine Überprüfung
> weg lassen kann, da sie einem sehr wahrscheinlich nichts bringt
> auser erhöhten Programmier aufwand.

Meinen Einzeiler empfand ich anderen Eventualitaeten[0] gegenueber
nicht als allzu aufwaendig.

Grusz,

Peter Blancke

[0] Andere Eventualitaeten sind (Liste unvollstaendig!):
    - Was macht der nachfolgende Aufruf eines anderen Programms mit
      der Datei? Kann ich mich drauf verlassen, dasz die Datei auf
      Vollstaendigkeit ueberprueft wird?
    - Was macht das nachfolgende Programm bei einer unvollstaendigen
      Datei? Prueft es erneut? Loest es ein Segmentation-fault aus
      und quittiert den Dienst? Waehlt es unbeaufsichtigt die
      kostenpflichtige Zielrufnummer in einem Endlos-Loop fuer die
      Dauer von mehreren Wochen im Minutenabstand an? Sendet es mir
      eine Nachricht ueber den Miszerfolg?
    - Werde ich in der Zukunft einen Dateitransport in ein anderes,
      auch fernes Dateisystem in Erwaegung ziehen? Werde ich dann
      auch noch an die Gefahr einer Dateiinkosistenz denken?

-- 
Hoc est enim verbum meum!


Reply to: