Am 20.05.2022 bekommt das Forum ein neues Update. Ab ca. 12:00 ist das Forum nicht mehr erreichbar und wird spätestens am 21.05. wieder online sein. Alle bis dahin erstellten Daten bleiben natürlich erhalten.

Vielen Dank für euer Verständnis. Bei Rückfragen: webmaster@linux-club.de (Christian)

[gelöst] Auswerten ob Datei in Benutzung

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Huflatisch
Hacker
Hacker
Beiträge: 543
Registriert: 5. Apr 2004, 22:40

[gelöst] Auswerten ob Datei in Benutzung

Beitrag von Huflatisch »

Hey

Ich benenne eine Datei auf einem FTP per cron um, bzw kopiere diese.
Wie kann ich den Fall abfangen, das das umbenennen der Datei erst erfolgt wenn diese vollständig hochgeladen ist. Geht das mit "test" . Habe aber in der man nix gefunden.

By Huflatisch
Zuletzt geändert von Huflatisch am 2. Mär 2006, 09:40, insgesamt 1-mal geändert.
ninguno
Member
Member
Beiträge: 71
Registriert: 4. Dez 2005, 21:04

Beitrag von ninguno »

ich versteh dein problem nicht ganz. jemand lädt eine datei auf deinen ftp server hoch und du benennst sie dann um? wenn das so ist dann wärs wohl besser der andere benennt sie selbst um nachdem er sie hochgeladen hat. dann ist klar, das hochladen ist fertig, sobald die datei umbenannt ist.
religion is a virus from outer space
Huflatisch
Hacker
Hacker
Beiträge: 543
Registriert: 5. Apr 2004, 22:40

Beitrag von Huflatisch »

Hey

Das ist nun mal so. Der Kunde meine Kundens läd automatisch EDI txt Datein im Stundentakt (tagsüber) auf einen ftp. Leider kriegt dieser es nicht in die Reihe diese Dateien mit einem Datumstempel zu versehen. So wird diese Datei jede Stunde überschrieben. Falls jetzt mein kunde es nicht schafft (aus was für einem Grund auch immer) diese datei in einer Stunde abzuholen ist diese definitiv weg (überschrieben mit einer neuen). Dieser Ablauf ist nicht zu beeinflussen. Ich hoffe deine Neugier ist damit erstmal zufriedengestellt. :wink:

... und wie könnte ich das "Problem" lösen

By Huflatisch

PS: Falls dich noch interessiert was EDI ist.
http://de.wikipedia.org/wiki/Electronic ... nterchange
Benutzeravatar
endor
Member
Member
Beiträge: 79
Registriert: 1. Sep 2005, 11:07
Wohnort: Berlin
Kontaktdaten:

Beitrag von endor »

wenn es stuendlich ist und du die zeit weisst, kannst du es ja kurz davor machen. wenn die dateien immer gleich gross sind kannst du auch auf groesse testen. ansonsten kann man vielleich tmit dem kunden reden und ihm sagen wie man den dateien einen zeitstempel aufdrueckt. vielleicht erstellt der ftp daemon auch nen neuen prozess wenn jemand etwas hochlaed und du koenntest darauf testen ob der noch existiert. du koenntest auch ne schleife per sleep machen und testen ob die datei nach ein paar sekunden groesser geworden ist.
ninguno
Member
Member
Beiträge: 71
Registriert: 4. Dez 2005, 21:04

Beitrag von ninguno »

sollte sich doch z.b. mit fuser prüfen lassen, ob die datei geöffnet ist
religion is a virus from outer space
Huflatisch
Hacker
Hacker
Beiträge: 543
Registriert: 5. Apr 2004, 22:40

Beitrag von Huflatisch »

Hey

oki, Danke
mir ist auch gerade lsof übern weg gelaufen. Müsste da einfach den Rückgabewert auswerten. Mal sehen ob ich hingriege

Müsste so funzen
lsof datei > /dev/null
if [ "$?" = "1" ]; then
echo Datei ist nicht geöffnet
else
echo Offene Datei
fi
By Huflatisch

PS @ Endor
dieses Problem habe ich schon per Script gelöst (ich vergleiche das Dateidatum bis auf die Sekunde mit einer tmp Referenzdatei). Mir gings nur noch darum ob die Datei geöffnet ist.
Benutzeravatar
haveaniceday
Hacker
Hacker
Beiträge: 775
Registriert: 7. Jul 2004, 14:09
Wohnort: Paderborn

Beitrag von haveaniceday »

Noch einfacher ist es wenn das sendeskript folgendes macht:

put file.tmp
ren file.tmp file

..
Haveaniceday
The gates in my computer are AND,OR and NOT, not Bill.
Wer lesen kann und dann noch die Suche bedienen kann ist klar im Vorteil 8)
Antworten