Ssh
如何通過 ssh 在遠端機器上執行本地 bash 腳本?
我正在尋找一種將配置從一台中央機器推送到多台遠端機器的方法,而無需在遠端機器上安裝任何東西。
cfengine
目的是在一組沒有設置代理的機器上做一些你會發現的事情,比如。這實際上可能是cfagent
在一組現有遠端機器上設置的好技術。
您可以傳遞一個腳本並通過管道將其導入並執行一個 shell 來使其臨時執行。
例如
echo "ls -l; echo 'Hello World'" | ssh me@myserver /bin/bash
自然地,該
"ls -l; echo 'Hello World'"
部分可以替換為儲存在本地電腦文件中的 bash 腳本。例如
cat script.sh | ssh me@myserver /bin/bash
乾杯!
有幾種方法可以做到這一點。
1:
ssh user@remote_server 'bash -s' < localfile
2:
cat localfile | ssh user@remote_server
3:
ssh user@remote_server "$(< localfile)"
數字 3 是我的首選方式,它允許互動式命令,例如
sudo -S service nginx restart
(當您使用 時,#1 和 #2 將使用腳本的其餘部分作為密碼問題的輸入
sudo -S
。)