Re: kopieren von nur vollständig erstellten Dateien
Hallo,
Ich hatte mit lsof experimentiert, aber nicht die richtige Option für
diesen Befehl gefunden.
Die Option -mmin im find-Befehl scheint eine sehr gute Lösung zu sein.
Franz Timmer
On 23.06.2012 19:06, Andreas Schmidt wrote:
> Die Schleife hier kopiert die Dateien, aber du wolltest ja verschieben,
> also statt "cp" muss dann natürlich "mv" eingesetzt werden.
>
> Gruß
> Andreas
>
>
> Am 23.06.2012 um 18:51 schrieb Andreas Schmidt:
>
>> Hallo,
>>
>> mit folgender Schliefe kannst du das lösen:
>> while read FILE
>> do
>> if cp ${FILE} <ZIELVERZEICHNIS> ; then
>> echo "Kopieren von Datei ${FILE} OK"
>> else
>> echo "Kopieren von Datei ${FILE} FEHLER"
>> fi
>> done < <(find <QUELLVERZEICHNIS>/* -mmin +1 -type f)
>>
>> Hier passiert folgendes:
>> 01. Finde alle Dateien im Quellverzeichnis, die sich mindestens 1 Minute nicht verändert haben
>> Also damit wird sichergestellt, das die Datei vollständig kopiert wurde.
>> 02. Gefundene Datei wird in die Variable FILE geschrieben
>> 03. Kopiere Datei nach Zielverzeichnis
>> 04a. Ist alles gut gegangen, dann kommt eine OK-Meldung
>> 04b. Ist irgendwas schief gelaufen, dann wird entsprechend die FELHER-Meldung angezeigt
>> 05. Wurden alle neuen Dateien abgearbeitet, dann verlasse die Schleife
>>
>> In der Schleife kannst du natürlich auch nur "cp ${FILE} <ZIELVERZEICHNIS>" angeben,
>> aber dann bekommst du keine Rückmeldung, wenn etwas schief gegangen ist.
>> Willst du z.b. nur eine Meldung bekommen, wenn es Probleme gab, dann würde die Schleife
>> so aussehen:
>>
>> while read FILE
>> do
>> if ! cp ${FILE} <ZIELVERZEICHNIS> ; then
>> echo "Kopieren von Datei ${FILE} FEHLER"
>> fi
>> done < <(find <QUELLVERZEICHNIS>/* -mmin +1 -type f)
>>
>> Gruß
>> Andreas
>>
>
>
Reply to: