Hallo Communty,
ich habe ein sehr kurioses Problem.
Folgenden Code verwende ich:
1 | #TempFile schreiben
|
2 | my $TempFile = "/tmp/test.csv";
|
3 | my $OutPutFile = "/mnt/TestLaufwerk/output.csv";
|
4 |
|
5 | open(DATEI, "> $TempFile") or die "Fehler beim Schreiben der Datei $!";
|
6 | print DATEI "CMDBID;Computername\r\n";
|
7 | foreach(@ExportListe)
|
8 | {
|
9 | print DATEI "$_\r\n";
|
10 | }
|
11 | close(DATEI) or die "Fehler beim Schließen $!";
|
12 |
|
13 | #copy($TempFile, $OutPutFile) or die "Fehler beim kopieren auf Snowserver";
|
14 | exec("mv $TempFile $OutPutFile");
|
15 | #unlink($TempFile) or die $!; # Tempfile wieder löschen
|
Auf der Netzlaufwerkseite läuft ein eventbasiertes Programm, welches
reagiert sobald dort eine neue Datei abgelegt wurde.
Diese Datei wird dann sofort geöffnet und weiterverarbeitet.
Wenn ich diese Datei mittels meinem Script ablege, bekomme ich den
Fehler auf der eventbasierten Seite - "Datei wird von einem anderem
Prozess genutzt und kann nicht geöffnet werden"
Wenn ich die Datei in der Console mittels "cp datei1 datei2" Befehl aus
dem Tempordner manuell kopiere, funktioniert alles ohne Probleme.
Ist das PERL Script vielleicht wirklich einfach zu langsam? Hat hier
irgendjemand eine Idee?
Den Fehler erhalte ich wenn ich die Copy Funktion aus File::Copy
benutze, bei exec() und bei system();
Ich bin ratlos, danke für euere Hilfe im Voraus!