2013-10-28 64 views
0

我在遠程服務器(bServer)上有一個腳本,它通過SSH連接到一箇中央服務器(讓調用是cServer)並踢出一個腳本,該腳本將SSH連接到其他服務器(server13/server14),每個生成文件的服務器上都會運行一個腳本。SCP作爲CRON作業運行時不起作用

我有從cServer到server13/14建立的DSA SSH的密鑰。然後,cServer將從server13/14中提取生成的文件,然後bServer將它們從cServer中提取出來。

手動運行時,此功能完美無缺。

但是......當我在CRON中的bServer上安排作業時,server14中的文件不會被拖到cServer上。

以下是更有趣的內容:當server13的ssh OR scp命令存在於同一個腳本中時,server13的文件不會從cServer傳輸到bServer。

如果我將它們放在單獨的腳本中,server13文件返回到bServer的狀態良好,但是server14的文件只生成,並且根本不傳回到cServer。

server13和server14都運行相同版本的SunOS。

我已經閱讀了許多類似問題的解決方案,但還沒有找到任何解決方案。

這一定是我遇到過的最煩人的問題。非常感激任何的幫助!

+1

你應該詢問http://superuser.com/,但我記得如果你想在腳本中使用scp,你必須複製服務器上的公鑰。 – kmas

+0

您可以爲您正在運行的作業提供crontab條目嗎? – Signal15

回答

0

通過cron執行作業時,您並未保留您的環境。如果您已經以擁有cron腳本的用戶身份登錄到遠程服務器,則爲了診斷目的,您可能希望嘗試通過at命令運行相同的腳本,而不是使用該命令。

如果你已經把你的命令在名爲my_script可執行腳本,下面的命令

在-f my_script 0936.00 將在9小時36分鐘執行命令my_script。如果這有效,你會知道在cron中你缺少一些你的環境中的重要組件。