ui schrieb:
Ich möchte den Ordner eine Webanwendung während des Betriebs per cron-Job lokal auf dem Server sichern.
Datenbank habe ich zvor schon per mysqldump gesichert. mysqldump macht während der Sicherung automatisch einen Lock auf die Datenbank.
Da Du hier mindestens zwei Ressourcen hast, die auch nicht miteinander koordiniert werden, läufst Du immer Gefahr von Race Conditions.
Vor dem Kopieren des Ordners scheint mir ein Lock auf diesen ebenfalls sinnvoll. Damit Dateien die gerade geschrieben werden nicht "halb geschrieben" kopiert werden.
Ich bin mir nicht sicher, dass Locken des Verzeichnisses genau das tut, was Du möchtest. Beispiel:
Prozess 1 beginnt eine neue Datei im Verzeichnis zu schreiben.
Prozess 2 lockt das Verzeichnis und fängt an zu kopieren, was bisher in die Datei geschrieben wurde.
Prozess 1 schreibt weiter in die Datei.
Das Abschließen des Verzeichnisses verhindert dieses Szenario nicht, weil gar keine Änderungen am Verzeichnis selbst gemacht werden. Man muss das mindestens so erweitern, dass Prozess 1 ebenfalls ein Lock auf das Verzeichnis zieht. Aber dann brauchst Du nicht unbedingt das Verzeichnis. Irgendeine leere Datei tut es auch.
Idealerweise machst Du die Sicherung zu einem Feature der Anwendung. Dann kannst Du dort sicherstellen, dass die Anwendung temporär in einen Nurlesemodus gestellt wird, während das Backup erstellt wird.