⑴ shell腳本中怎麼ssh上遠程機執行命令
先在兩台機子上建立信任,ssh-key
具體方法網路下就有
腳本里的命令是
ssh 用戶@ip
⑵ 如何使用python執行遠程shell腳本
最近有個需求就是頁面上執行shell命令,第一想到的就是os.system,
代碼如下:
os.system('cat /proc/cpuinfo')
但是發現頁面上列印的命令執行結果 0或者1,當然不滿足需求了。
嘗試第二種方案 os.popen()
代碼如下:
output = os.popen('cat /proc/cpuinfo')
print output.read()
通過 os.popen() 返回的是 file read 的對象,對其進行讀取 read() 的操作可以看到執行的輸出。但是無法讀取程序執行的返回值)
嘗試第三種方案 commands.getstatusoutput() 一個方法就可以獲得到返回值和輸出,非常好用。
代碼如下:
(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')
print status, output
Python Document 中給的一個例子,
代碼如下:
>>> import commands
>>> commands.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
>>> commands.getstatusoutput('cat /bin/junk')
(256, 'cat: /bin/junk: No such file or directory')
>>> commands.getstatusoutput('/bin/junk')
(256, 'sh: /bin/junk: not found')
>>> commands.getoutput('ls /bin/ls')
'/bin/ls'
>>> commands.getstatus('/bin/ls')
'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'
⑶ 如何用批處理登錄遠程計算機上,執行另一個批處理文件
用net use命令連接ipc$,需要管理員用戶和密碼。
net user \192.168.1.10/ipc$ "password" /user:administrator;
然後用at命令遠程執行。
at \192.168.1.10 18:00 "d: emote.cmd";
18:00表示時間,下午6點.at \ip 是用來給遠程電腦在指定的時間運行某個任務用的;
at \ip hh:mm 「程序路徑和參數」;
比方說17:00分,用管理員賬戶admin 密碼:123456連接到192.168.0.1,要讓他運行d盤下的remote.cmd你就可以這樣寫:
at \192.168.0.1 17:01 "d: emote.cmd"
這樣,remote.cmd在一分鍾內就會被執行了。
(3)遠程執行腳本擴展閱讀:
遠程的計算機服務需要使用遠程式控制制軟體,遠程式控制制軟體一般分客戶端程序(Client)和伺服器端程序(伺服器)兩部分,通常將客戶端程序安裝到主控端的電腦上,將伺服器端程序安裝到被控端的電腦上。
使用時客戶端程序向被控端電腦中的伺服器端程序發出信號,建立一個特殊的遠程服務,然後通過這個遠程服務,使用各種遠程式控制制功能發送遠程式控制制命令,控制被控端電腦中的各種應用程序運行。
⑷ 怎麼遠程執行自己編寫的ps1
遠程機器上啟用 允許遠程管理
PS> Enable-PSRemoting -Force -SkipNetworkProfileCheck
在此計算機上設置了 WinRM 以接收請求。
WinRM 已經進行了更新,以用於遠程管理。
WinRM 防火牆異常已啟用。
本地機器上可以這樣執行
PS> Invoke-Command -ComputerName localhost -ScriptBlock {whoami}
PSTips.NET\Mosser.lee
如果是寫好的ps1,可以先把腳本放在遠程機器上能夠訪問的共享目錄上:
Invoke-Command -ComputerName localhost -ScriptBlock { \\pstips.net\abc\a.ps1}
⑸ linux 如何自動遠程執行腳本
1、安裝sshpass
2、sshpass -p 「passwd」 ssh -p22 root@$dst_ip 「a.sh」
注意a.sh是目標主機里的腳本。
⑹ 利用shell腳本執行ssh遠程另一台主機執行命令並返回命令的結果集
假設從主機A,檢查主機B上的進程,
需要在主機B上建立檢查用戶,例如叫x,
並設置通過public key認證登錄SSH,不會可以google搜一下,
然後,在A機器上執行:
ssh x@B ~/command.sh > result.txt
command.sh就是B機器上放置在x目錄下的腳本。
輸出結果應該是寫到了result.txt
或者另一種寫法
result=`ssh x@B ~/command.sh`
結果直接保存到result變數中了。
暫時沒有linux環境,所以沒有實際測試,你自己試試吧
免費提供最新Linux技術教程書籍,入門自學書籍《linux就該這么學》,為開源技術愛好者努力做得更多更好
⑺ linux 遠程調用腳本執行後不繼續執行後續命令,需要輸入ctrl+c,詳細見補充
這腳本寫的,為什麼不直接在B機器上直接執行。a機器做了免密鑰登錄了嗎,a.sh里的ssh……
⑻ 怎麼在一個shell腳本中執行遠程主機的另一個shell腳本 ssh已經可以無密碼登錄了。
假設你要操作的是遠程伺服器
IP為:1.1.1.1
操作的腳本是 :/home/a.sh
操作命令為
ssh 1.1.1.1 「/bin/bash /home/a.sh」
⑼ 如何遠程調用windows上的批處理腳本
如果你想 在伺服器上運行,伺服器上的程序,就是終端。終端可以用telnet ssh等。
telnet伺服器系統自帶,ssh要在伺服器上安裝一個程序。
現在你就可以手動從本地 終端登陸伺服器了。
要想讓腳本自動登錄,有命令swawn 和 expect 寫腳本,當然這兩個命令需要客戶機環境支持。
⑽ shell本地腳本調用遠程腳本,當遠程腳本執行完再繼續執行本地腳本
#!/bin/bash
#調用expect腳本執行遠程sh
expect-c'
settimeout10000
spawnsshusr@ip
expect{
"yes/no"{send"yes ";exp_continue}
"*assword"{send"passwd "}
}
expect"#"
send"sh1 "
expect"#"
'
echo
ls-l
其中timeout時間需要設置足夠長,不然會連接超時斷掉。
或者你配置了rsh,可以把上面的expect過程替換成rsh [Host] [-l UserName] [-n] [Command]