Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
delumax
- Beiträge: 63
- Registriert: 14.06.2004 08:25:51
Beitrag
von delumax » 06.04.2006 14:37:47
Hallo Zusammen,
ich habe hier ein Verzeichnis mit einem Haufen Dateien mit der selben Dateiendung. Diese kopiere ich regelmässig per Cron in einen anderen Ordner. Nun suche ich nach dem Königsweg die Dateien stehen zu lassen die zu diesem Zeitpunkt noch "gefüllt" werden, sprich noch im Zugriff sind, da es ansonsten arge Probleme geben kann.
Hat sich evtl. schonmal wer hiermit bzw. etwas ähnlichem auseinandergesetzt? Danke!
-
ScyTheMan
- Beiträge: 363
- Registriert: 23.10.2004 15:09:14
- Lizenz eigener Beiträge: GNU Free Documentation License
Beitrag
von ScyTheMan » 06.04.2006 15:50:16
lsof <Verzeichnis/Datei>
-
C167
- Beiträge: 468
- Registriert: 06.04.2006 08:55:20
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Beitrag
von C167 » 06.04.2006 15:53:31
das packet logrotate speichert auf wunsch bestimmte Dateien, indem es bspw. einen dienst beendet, die dateien umkopiert und packt un den dienst wieder startet, oder anstelle start/stop dem dienst sagt, die datei hat sich geändert.
ich habe auch mal von dem Befehl beginnend mit "ls" gehört, lsopen oder so änlich, einfach mal ls eingeben und 2mal tab drücken
-
nepos
- Beiträge: 5238
- Registriert: 05.01.2005 10:08:12
Beitrag
von nepos » 06.04.2006 16:06:33
Mit logrotate waers wahrscheinlich am besten zu machen.
Neben lsof gibts auch noch fuser, das hier vielleicht sogar noch einfacher zu nutzen ist.
Mal ein Zitat aus der Manpage zu fuser:
if fuser -s /dev/ttyS1; then :; else something; fi invokes something if no other process is using /dev/ttyS1.
-
ScyTheMan
- Beiträge: 363
- Registriert: 23.10.2004 15:09:14
- Lizenz eigener Beiträge: GNU Free Documentation License
Beitrag
von ScyTheMan » 06.04.2006 16:17:15
Code: Alles auswählen
if lsof DATEI > /dev/null; then echo "in use"; else echo "not in use"; fi
Tut das gleiche. Ist letztendlich eigtl. wurscht was du nimmst. Aber logrotate ist wirklich die beste Möglichkeit dafür. Da kannst du auch wunderbar regeln angeben ab welcher Größe die Dateien rotiert werden sollen etc.
-
delumax
- Beiträge: 63
- Registriert: 14.06.2004 08:25:51
Beitrag
von delumax » 08.04.2006 13:40:14
Erstmal danke! Ich werde mich wohl zwischen fuser, lsof und einer Überprüfung des Zeitstempels entscheiden.. Logrotate ist an dieser Stelle nicht zu gebrauchen da es keinen Dienst zu beenden etc. gibt und die Dateien weiter verarbeitet werden müssen.. Danke nochmal!
-
ScyTheMan
- Beiträge: 363
- Registriert: 23.10.2004 15:09:14
- Lizenz eigener Beiträge: GNU Free Documentation License
Beitrag
von ScyTheMan » 08.04.2006 15:21:56
Du musst mit logrotate keinen Dienst beenden lassen. Außerdem kannst du auch hier festlegen, was nach dem Rotieren der Dateien passieren soll (postrotate/endscript). Ist natürlich nur ein Vorschlag.