PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UNIX - Automatisiertes Kopieren (heute geänderte Dateien)


(del)
2009-10-15, 18:22:03
Hallo, Gruezi und auf Servus!

Ich bin momentan an einem Problem, bei dem ich fachkundige Mithelfer benötige.
Und zwar brauche ich für ein UNIX-Derivat ein Skript, welches mir bei Aufruf alle heute geänderten Dateien in einem Ordner in einen anderen kopiert und bestehende Dateien im Zielordner ohne Nachfrage überschreibt.

Ich würde mich über rege Mithilfe freuen, da ich auch durch eigene Recherchen keinen "Step forward" gekommen bin. Das mag daran liegen, dass ich UNIX nicht im Blut habe...

Danke im Voraus!

fezie
2009-10-15, 19:00:00
Was für ein UNIX denn?
Wenn es ausreichend alle Dateien die in den letzten 24 Stunden verändert worden sind, einfach:
find / -mtime 1 -exec cp -f '{}' /anderer/pfad \;

Wenn du GNU find zu verfügung hast könntest auch "find -mmin" verwenden. Müsstest halt per "date" die Anzahl der Minuten seit Mitternacht berechnen.

(del)
2009-10-15, 20:53:07
Vielen Dank. Ich werde das Kommando demnächst testen.

Mit der Option "-mtime 6" werden dann logischerweise alle neuen Dateien der letzten 6 Tage angefasst, richtig?

fezie
2009-10-15, 21:51:02
Ach ich hätt die manpage genauer lesen sollen.
Die letzten 6 Tage wären
find / -daystart -mtime -6
Ohne daystart wärens wirklich nur die Dateien die in den letzten 24*6 Stunden verändert wurden.

Mein obiges Beispiel mit -mtime 1 ist falsch.
Die letzten 24 Stunden wären -1 wobei 0 bei mir das selbe ausgibt.

alle neuen Dateien
Wenn du nur die neuen Dateien haben willst und nicht alle die verändert worden sind, hast du unter Unix/Linux ein Problem.
Der Zeitpunkt wann eine Datei erstellt worden ist wird nicht gespeichert.
Die ctime wird geändert wenn du die Rechte der Datei änderst oder sowas und bei Änderungen am Dateiinhalt., also wie die mtime.

Ganon
2009-10-15, 22:43:18
Hilft dir vllt. rsync mehr? Weiß ja nicht was du genau machen willst...