Problem mit copy Befehl (gibt Datei nicht wieder frei)
|
Seitenanfang |
| Hallo zusammen, ich bin neu hier und bin noch Anfänger in sachen Perl. Im Buch "Einführung in Perl", man File::Copy und im Forumarchiv habe ich leider keine Lösung gefunden. Also mein Poblem: copy ("$filename_sxw","$filename_out") or die "Copy failed: $!";
Wenn die Datei $filename_out schon existiert und mit Openoffice geöffnet ist bricht mein Perlscript wie erwartet mit dem Fehler Keine Berechtigung ab. Schließe ich die Datei dann und führe mein Script erneut aus, bricht mein script trotzdem ab. Auch läßt sich die Datei dann nicht mehr löschen. Wenn ich eine Datei verwende, die nicht während einem Scriptdurchlauf geöfnet war, funktionierts einwandfrei (Datei wird überschrieben). Gruß Manfred
Datum: 02.11.2005-13:34

|
re: Problem mit copy Befehl (gibt Datei nicht wieder frei)
|
Seitenanfang |
| also ich kann das weder mit Linux und OpenOffice, noch mit Win2000 und Word (OO gerade nicht verfügbar) nachvollziehen. Bei mir klappt es klaglos. Eventuell bleibt das Perl Skript selbst hängen und blockiert das File. Hast Du mal nach einem gescheiterten copy ein ps -ef abgesetzt (oder in Windows im Task Manager nachgeschaut)? Gruss, svenXY
Datum: 02.11.2005-15:01

|
re: Problem mit copy Befehl (gibt Datei nicht wieder frei)
|
Seitenanfang |
| Hallo svenXY, unter Linux sind keine auffälligen Prozesse übriggeblieben, die eine größere PID hatten als meine Konsole. Ich hab noch etwas herumprobiert und festgestell, dass wenn ich die Datei auf dem lokalen Rechner liegen habe diese sich überschreiben läßt auch wenn sie mit OO geöffnet ist (bisher war die Datei mit smbmount gemountet). Gibt es eine Möglichkeit vor dem copy schon zu überprüfen, ob da irgendjemand auf die Datei zugreift? Mit stat komme ich da ja nicht weiter, oder? Unter XP habe ich den copy-Befehl nicht zum kopieren bewegen können. Gibt es da eine spezielle Art die Pfade anzugeben? Grüße Manfred
Datum: 02.11.2005-17:16

|
re: Problem mit copy Befehl (gibt Datei nicht wieder frei)
|
Seitenanfang |
| Hallo Manfred, dann hat das ganz klar was mit dem locking von Samba zu tun. Soweit ich weiss gibt es da verschiedenen Methoden des Lockings. Mit dem Linux-Befehl fuser kannst herausfinden, ob eine Datei geöffnet ist, vielleicht gibt es etwas entsprechendes für perl. Andernfalls kannst Du es auch mit system() aufrufen, bevor Du kopierst. Vielleicht gibt es auch ein Perl Modul, das mit Samba locks zurechtkommt, ich habe aber auf die Schnelle keins gefunden. Viel Glück, svenXY
Datum: 03.11.2005-09:22

|
re: Problem mit copy Befehl (gibt Datei nicht wieder frei)
|
Seitenanfang |
| sorry für die späte Antwort. Leider hat mein Tag nur 24h. fuser zeigt mir keinen Zugriff auf die Datei an, auch wenn sie gesperrt ist. Ich glaube Linux sieht die Datei als unbenutzt und Windows als benutzt an. Der Befehl system() ist mir unbekannt. Da ich im Moment keine übrige Zeit habe werde ich im Moment mit dem Problem leben. @svenXY Danke für deine Antworten. Gruß Manfred
Datum: 07.11.2005-23:39

|
re: Problem mit copy Befehl (gibt Datei nicht wieder frei)
|
Seitenanfang |
| zjtzj
Datum: 02.11.2005-20:49

|