2011-12-11 149 views
0

我一直有興趣在SAS中找到替代UI的相當長一段時間。我們在我們的服務器上授權SAS而不是我們的桌面,所以我們還必須啓動遠程桌面應用程序來執行代碼。在Python中使用Telnet連接批量執行SAS

我能夠使用Telnet連接來遠程連接服務器,並批量執行SAS程序。然後,我對是否可以遠程連接python腳本以及批處理執行代碼感興趣,並且此腳本可以作爲BeanShell腳本在jEdit中執行。

到目前爲止,我有成功打開和關閉Telnet連接的Python代碼。它可以執行基本的shell函數,如調用「dir」。但是,當我通過與遠程服務器上的命令提示符在Python中使用telnet連接執行SAS完全相同的行時,沒有任何反應。

是否有可能服務器阻止我從腳本執行代碼?在運行任何代碼之前,我對提示使用了「read_until」語句。

+1

是否包含在您的許可證中的企業指南?這是一個在服務器上執行代碼的好用戶界面。 –

+0

您可能想要使用'Telnet.set_debuglevel'來獲得更多有關您在執行read_until調用時發生的情況的信息。 –

+0

@ CarolinaJay65我們在桌面上沒有SAS。不確定關於企業指南,我不得不問大個子。 @ DavidK.Hess我正在嘗試'打印tnobj.read_until(提示符)',它將所有的telnet輸出提供給'直到我點擊提示符,所以它看起來像我幾乎將它管道到Python shell。我實際上沒有得到任何錯誤,所以我不知道debuglevel會做什麼。 – AdamO

回答

0

這裏有一些想法...

您有以上的問題可能在Windows中(如果是在Windows服務器上運行)相關的本地安全策略設置。我遠不是這方面的專家,但我記得老式的SAS/Intranet安裝需要在那裏進行一些破壞以使它們工作。

作爲一種替代你想上面你也可以設置一個偵聽傳入套接字請求按這篇文章的服務器上的SAS會話的方式:

http://analytics.ncsu.edu/sesug/2000/p-1003.pdf

最後...不當然,如果這有助於我通過PSEXEC遠程執行SAS作業。我如何設置這一切的描述可以在這裏找到:

http://www.runsubmit.com/questions/260/hide-sas-batch-jobs-winxp

好運

+0

PsExec看起來很有前途,我試着執行一個小程序,但得到的訪問被拒絕。我們的服務器目前已啓用telnet,我以爲PsExec使用。我嘗試提供用戶名和密碼。任何想法爲什麼這是? – AdamO

+0

恩,不好意思。在[http://forum.sysinternals.com/pstools_forum8.html](http://forum.sysinternals.com/pstools_forum8.html)有一個相當活躍的psexec論壇,可能會有所幫助。 –

0

This paper概述瞭如何使用Python腳本使用SSH連接到UNIX服務器,複製SAS本地編寫到服務器上的程序,批量提交它並將結果下載回本地機器,所有這些都使用jEdit的BeanShell宏腳本。