Sto scrivendo uno script perl per accedere a un server con ssh e fare alcuni comandi della shell sul server. Il problema è che il server è accessibile solo registrandosi prima su un altro server. (sto usando il login senza password con le chiavi ssh).Citazione in bash e perl nel comando ssh ricorsivo
Il seguente script bash funziona correttamente, e illustra il problema:
#! /bin/bash
server1="login.uib.no"
server2="cipr-cluster01"
ssh "$server1" "ssh $server2 \"echo \\\"\\\$HOSTNAME\\\"\""
Esso stampa il nome host corretto per il mio schermo: cipr-cluster01
. Tuttavia, quando si cerca di fare stessa cosa in Perl:
my $server1="login.uib.no";
my $server2="cipr-cluster01";
print qx/ssh "$server1" "ssh $server2 \"echo \\\"\\\$HOSTNAME\\\"\""/;
ottengo il seguente output: login.uib.no
. Quindi immagino, ci sono alcuni problemi con la citazione dello script perl ..
Grazie, questo funziona! (Ho anche trovato che 'print qx/ssh $ server1 \" ssh $ server2 \\\ "echo \\\\\ $ HOSTNAME \\\" \ "/;' funziona ... ma i tuoi comandi sono più semplici) . –