perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 19
Click for quality!




12.02.2012 / 04:11

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragProblem 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: Problem mit copy Befehl (gibt Datei nicht wieder frei)
Seitenanfang
zjtzj

Datum: 02.11.2005-20:49

-






-
-