[Linz-pm] IO::Socket::INET und open

Stefan Seifert nine at detonation.org
Fri May 31 05:26:36 PDT 2013


Hallo Wolfgang

On Friday 31 May 2013 13:38:53 WFB wrote:

> Das funktioniert für sich genommen so wie erwartet. In meinem Serverscript
> allerdings kommt immer die Fehlermeldung:
> The process cannot access the file because it is being used by another
> process

Die Fehlermeldung lässt vermuten, dass es sich hier um einen Windowsserver 
handelt. Kann das sein? Wenn ja, dann ist die spannende Frage, ob die ganze 
Geschichte mit output redirection überhaupt funktioniert. Hab mit Windows kaum 
Erfahrung. Vielleicht weiß Mathias da mehr.

Generell bin ich mir nicht sicher, ob der ganze Ansatz gut ist. Die 
Vorstellung, einfach auf einen Port zu verbinden und dann beliebige Kommandos 
ausführen zu können macht mich nervös. Wir benutzen für ähnliche Zwecke 
https://metacpan.org/module/Net::SSH

my $ssh = Net::SSH::Perl->new(
    'your.server.intern',
    identity_files => ["$ENV{HOME}/.ssh/id_rsa"],
    compression => 0,
    options => ["UserKnownHostsFile $ENV{HOME}/.ssh/known_hosts.perl"],
);
$ssh->login('your_user');
my ($stdout, $stderr, $exit) = $ssh->cmd("do whatever you need to do");

Damit hat man sichere Authentifizierung mittels ssh key und kann immer noch 
beliebige Kommandos am Server ausführen und braucht dort nichts außer einem 
laufenden ssh-Server. Unter Windows geht das mit Cygwin recht einfach.

Ein anderer recht spannender Ansatz ist 
https://metacpan.org/module/Object::Remote
das ebenfalls ssh benutzt und womit man dann auf dem Server beliebigen 
Perlcode ausführen kann und dabei sogar Perlmodule benutzen, die am Server gar 
nicht installiert sind, sondern nur am Client.

Hoffe, das hilft dir ein wenig,
Stefan


More information about the Linz-pm mailing list