我意識到查詢很簡單,互聯網上有很多類似的話題,但由於某種原因,我無法做到這一點,我我已經到了最後。批處理腳本通過SSH連接,執行一個命令,並將結果傳遞給一個OUTPUT文件
這是場景。批處理腳本將連接(使用膩子鏈接)到主機。它會執行一個命令(如檢查主機版本)。該腳本將輸出到一個文件。
到目前爲止,我可以配置其中的大部分 - 我的腳本使用一個包含IP的池源文件來讀取它需要連接的主機;它連接到主機;執行檢查版本命令並將結果保存到文件中。 然而,結果有一個不好的格式,我不能把我想要在輸出文件中看到的格式。
這是我的代碼:
:Var
set out=E:\output.txt
set src=E:\servers.txt
set ver=cat /etc/*-release
set creds=-l root -pw root
set host=hostname
:Cond
for /f %%i in (%src%) do call :Cmd %%i
:Cmd
plink -ssh %1 %creds% %host%
plink -ssh %1 %creds% %ver%
echo %1 is %ver% >> %out%
的結果是這樣的:
server01Red Hat Enterprise Linux Server release 5.7 Beta (Tikanga)
server02Red Hat Enterprise Linux Server release 5.7 Beta (Tikanga)
所以我想,使其正確的格式,例如:
server01 OS:Red Hat Enterprise Linux Server release 5.7 Beta (Tikanga)
server02 OS:Red Hat Enterprise Linux Server release 5.7 Beta (Tikanga)
甚至可以截斷在主機上運行的命令的輸出並僅顯示其一部分,如「紅帽「只是例如。
謝謝!
嗨RGuggisberg 感謝您的提示。我會做出改變。 至於結果,我想實現以下的輸出: SERVER01 \t紅帽企業Linux服務器版本5.7 Beta版 Server02上\t Ubuntu的 server03 \t紅帽企業Linux服務器版本6 因此,這意味着。我還發現自己在試圖在腳本中嵌入時遇到了相當大的問題,所以如果這不可行,我至少要確保和之間有空格。 乾杯! –
stan
2013-02-21 05:57:34