2013-01-14 185 views
1

我有一個perl腳本,我需要使用ssh連接到另一臺機器,然後運行另一個perl腳本。我嘗試使用這一行:使用ssh在另一個腳本內運行perl腳本

system("ssh $admin_server 'perl /Perl/scripts/capture_server_restarts_gse.pl $month $date'"); 

但每次腳本到達那行,我獲取遠程計算機的提示和腳本不運行。

我該如何解決這個問題,以便腳本自動在另一臺機器上運行而不顯示提示。

注:我不需要密碼和用戶連接到我們已經解決了這個遠程機器。

+0

先嚐試基本的調試,如打印而不是系統,或者'touch /tmp/this.is.me.debugging'而不是perl腳本。還可以嘗試給遠程Perl解釋器一些像-c和-w這樣的開關,任何可以從中調試的東西。如何使SSH更詳細? – Perleone

回答

4

爲什麼不把公鑰複製到另一臺機器上?這樣你將被預先授權。

Here are the instructions如何做到這一點使用ssh-keygen

否則,你有你的密碼養活ssh,這是棘手,因爲ssh一般需要從tty輸入,你必須使用密碼配置腳本。

+0

沒有必要,我已經改變了所有的權限,它沒有問我密碼 – Vordok

0

可以將SSH服務器配置爲始終運行一些自定義shell而不是從客戶端傳遞的命令。

儘量只運行在命令行中一些簡單的命令,即:

ssh server ls 

一個不太可能的可能性是插值到系統參數perl的變量可能包含需要更好地逃避一些shell元字符。例如,在$ admin_server裏面有一個分號。

相關問題