Problem bei der Ausführung von Perl Skripten über SSH

Babaganoush

Babaganoush

Mitglied
Thread Starter
Dabei seit
19.06.2007
Beiträge
175
Reaktionspunkte
2
Hallo,

ich muss sehr häufig verschiedene Perl Skripte auf einem entfernten Debian 6 Server ausführen. Hierzu wird ganz klassisch eine SSH Verbindung ausgeführt und dann ganz normal auch im Terminal das Skript gestartet ($ ./skript.pl).

Für die meisten Skripte funktioniert dies einwandfrei, bei manchen klappt es aber nicht, es gibt gar keine Fehlermeldung sondern er "exit-et" einfach das Skript und gut.

Jetzt habe ich natürlich sofort gedacht - Skript fehlerhaft - aber Pustekuchen:

#1 Wenn eben jenes Skript über die crontab ausgeführt wird läuft es;
#2 Wenn es von einem Linux Computer per SSH ausgeführt wird läuft es;
#3 Wenn ich mich per SSH auf den Server setze und per screen die Verbindung eines andere (Linux) Computers nutze und so das Skript starte läuft es;
#4 Wenn ich ein Terminal Java-Applet im Safari nutze läuft es;

Nur auf jedem getesteten Mac läuft das blöde Ding nicht.

Ich habe hierzu auch den Apple Support angerufen, die waren total überfordert und haben nicht einmal verstanden was ich da eigentlich mache. Aussage war, "wir sind hier ein Endkunden Support, von sowas haben wir keine Ahnung". - Ja super, ich kaufe mir auch einen Mac Pro um damit Postkarten in iPhoto zu drucken oder wie? :koch:


Kann mir hier vielleicht jemand helfen? Super vielen Dank schonmal!
 
perl ist nun mal nicht perl ;)
auf welcher perl version läuft es denn? und auf welcher nicht?
welche perl module braucht es?
shebang im script richtig gesetzt?
mit perl script.pl läuft es?
 
Hey Danke für die schnelle Antwort!

auf dem Debian Server läuft:

This is perl, v5.10.1 (*) built for x86_64-linux-gnu-thread-multi(with 61 registered patches, see perl -V for more detail)

auf meinem mac läuft:

This is perl 5, version 12, subversion 4 (v5.12.4) built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail)

Wobei ja nur die Perl Version auf dem Server relevant ist oder nicht? Das Skript wird ja nicht bei mir interpretiert(?)


Die Perl Module bei dem Skript das nicht läuft sind:

use strict;
use utf8;
use forks;
use Encode;
use LWP::UserAgent;
use HTTP::Request::Common;
use Data::Dumper;
use List::MoreUtils qw( uniq );
use MIME::Lite;
use DBI;
use HTML::Entities;


Die Perl Module bei einem lauffähigen Skript sind:

use strict;
use warnings;
use DBIx::Connector;
use Encode;
use HTML::TreeBuilder;
use List::MoreUtils qw( uniq );
use LWP::UserAgent;
use Parallel::ForkManager;


use HTML::Entities;
use HTML::TreeBuilder;
use MIME::Lite;


Shebang lautet bei allen Skripten: #!/usr/bin/env perl
 
würde zuerst mal bei dem shebang ansetzen und es auf /usr/bin/perl ändern.
/usr/bin/env perl hängt sich z.b bei mir unter 10.8 komplett weg.
 
kurze Frage: hat die Perl Implementation auf meinem Mac (und damit das shebang) überhaupt Einfluss wenn ich das Skript per SSH auf einem anderen (Debian) Server ausführe?

btw: egal ob mit ./skript.pl oder perl skript.pl bei den Problemskripten ändert sich nichts
 
Hast Du mal geprüft, ob in der SSH Verbindung evtl. bestimmte Variablen, die entweder Perl allgemein oder Dein Skript im besonderen, benötigen, "richtig" gesetzt sind.

Etwa so was wie $PERL5LIB.
Kannst ja mal die Ausgabe von env vergleichen.

Wenn das zu keinem Ergebnis führt:
Was haben die Skripte, die nicht laufen, was andere, die laufen, nicht haben?

Wenn Du damit auch nicht weiter kommst:
Debug Kommandos in die nicht laufenden Skripte einpflegen, um zu sehen, wie weit das Skript kommt.
Das können z. B. Kommandos sein, die etwas in eine log Datei schreiben.

Und wenn auch nicht hilft, musst Du spezifischen Beispielcode posten.

Gruß
D.Mon
 
Zurück
Oben Unten