Linux下使用SSH遠程執行命令方法收集


說明:可以做SSH免密登錄之后執行,這樣可以省去每次執行輸入密碼的提示。

對於簡單的命令:

如果是簡單執行幾個命令,則:

ssh user@remoteNode "cd /home ; ls"

基本能完成常用的對於遠程節點的管理了,幾個注意的點:

  • 雙引號,必須有。如果不加雙引號,第二個ls命令在本地執行
  • 分號,兩個命令之間用分號隔開
  • 多行命令可以輸入雙引號后回車,結尾使用雙引號包裹

對於腳本的方式:

有些遠程執行的命令內容較多,單一命令無法完成,考慮腳本方式實現:

#!/bin/bash
ssh user@remoteNode > /dev/null 2>&1 << eeooff
cd /home
touch abcdefg.txt
exit
eeooff
echo done!

遠程執行的內容在”<< eeooff“至”eeooff“之間,在遠程機器上的操作就位於其中,注意的點:

  • << eeooff,ssh后直到遇到eeooff這樣的內容結束,eeooff可以隨便修改成其他形式。
  • 重定向目的在於不顯示遠程的輸出了
  • 在結束前,加exit退出遠程節點

執行本地的腳本

我們在本地創建一個腳本文件test.sh,內容為:

ls
pwd
echo $0

然后運行下面的命令:

ssh root@xxx.xxx.xxx.xxx < test.sh

帶參數本地腳本

ssh root@xxx.xxx.xxx.xxx 'bash -s' < test.sh helloworld

執行遠程服務器上的腳本

ssh root@xxx.xxx.xxx.xxx "/home/nick/test.sh"

執行遠程服務器上帶參數的腳本

ssh root@xxx.xxx.xxx.xxx /home/nick/test.sh helloworld

 

參考:

http://www.cnblogs.com/ilfmonday/p/ShellRemote.html(以上內容部分轉自此篇文章)

https://www.cnblogs.com/sparkdev/p/6842805.html(以上內容部分轉自此篇文章)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM